PHP快速入门15-收藏,常见的50多个高频数组函数使用总结

简介: PHP快速入门与实战,关于本篇文章介绍的内容,Composer包管理,后续更多内容将收录在专栏PHP快速入门与实战。收藏,常见的50多个PHP高频数组函数使用总结。

前言

本文已收录于PHP全栈系列专栏:PHP快速入门与实战
在这里插入图片描述

一、数组函数使用例子1-10

1. is_array

用于判断一个变量是否为数组,返回布尔值。

语法:

bool is_array ( mixed $var )

示例:

$arr = array(1, 2, 3);
$result = is_array($arr);  // true

2. array_change_key_case

用于将数组的键名大小写进行修改。

语法:

array array_change_key_case ( array $array [, int $case = CASE_LOWER ] )

示例:

$arr = array('A' => 1, 'B' => 2);
$result = array_change_key_case($arr, CASE_UPPER);
print_r($result);  // output: Array ( [A] => 1 [B] => 2 )

3. array_chunk

用于将一个数组分割成多个小数组。

语法:

array array_chunk ( array $array , int $size [, bool $preserve_keys = false ] )

示例:

$arr = array(1, 2, 3, 4, 5);
$result = array_chunk($arr, 2);
print_r($result);  // output: Array ( [0] => Array ( [0] => 1 [1] => 2 ) [1] => Array ( [0] => 3 [1] => 4 ) [2] => Array ( [0] => 5 ) )

4. array_column

从多维数组中取得某个键对应的值,返回一维数组。

语法:

array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )

示例:

$arr = array(
    array('id' => 1, 'name' => 'Tom'),
    array('id' => 2, 'name' => 'Jerry')
);
$result = array_column($arr, 'name');
print_r($result);  // output: Array ( [0] => Tom [1] => Jerry )

5. array_combine

用于将一个数组的键与另一个数组的值进行组合,返回新的数组。

语法:

array array_combine ( array $keys , array $values )

示例:

$keys = array(1, 2, 3);
$values = array('a', 'b', 'c');
$result = array_combine($keys, $values);
print_r($result);  // output: Array ( [1] => a [2] => b [3] => c )

6. array_count_values

用于统计数组中每个值出现的次数,返回关联数组。

语法:

array array_count_values ( array $array )

示例:

$arr = array(1, 2, 2, 3, 3, 3);
$result = array_count_values($arr);
print_r($result);  // output: Array ( [1] => 1 [2] => 2 [3] => 3 )

7. array_diff_assoc

用于比较多个数组的差异,返回一个新数组,包含在第一个参数数组中但不包含在其他参数数组中的值。

语法:

array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )

示例:

$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('a' => 1, 'b' => 2);
$result = array_diff_assoc($arr1, $arr2);
print_r($result);  // output: Array ( [c] => 3 )

8. array_diff_key

用于比较多个数组的差异,返回一个新数组,包含在第一个参数数组中但不包含在其他参数数组中的键名。

语法:

array array_diff_key ( array $array1 , array $array2 [, array $... ] )

示例:

$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('a' => 1, 'b' => 2);
$result = array_diff_key($arr1, $arr2);
print_r($result);  // output: Array ( [c] => 3 )

9. array_diff_uassoc

用于比较多个数组的差异,返回一个新数组,包含在第一个参数数组中但不包含在其他参数数组中的值,使用回调函数进行比较键名和键值。

语法:

array array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

示例:

function compare($a, $b) {
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('a' => 1, 'b' => 4);
$result = array_diff_uassoc($arr1, $arr2, 'compare');
print_r($result);  // output: Array ( [b] => 2 [c] => 3 )

10. array_diff_ukey

用于比较多个数组的差异,返回一个新数组,包含在第一个参数数组中但不包含在其他参数数组中的键名,使用回调函数进行比较。

语法:

array array_diff_ukey ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

示例:

function compare($a, $b) {
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('a' => 1, 'b' => 4);
$result = array_diff_ukey($arr1, $arr2, 'compare');
print_r($result);  // output: Array ( [c] => 3 )

二、数组函数使用例子11-20

11. array_fill

函数作用:用给定的值填充一个数组,根据指定的索引范围。

$filled_array = array_fill(0, 3, 'apple');

var_dump($filled_array);
// 输出结果:
array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(5) "apple"
  [2]=>
  string(5) "apple"
}

12. array_filter

函数作用:过滤数组中不符合条件的元素。

$numbers = [1, 2, 3, 4, 5];

$filtered_numbers = array_filter($numbers, function($num){
    return $num % 2 == 0;
});

var_dump($filtered_numbers);
// 输出结果:
array(2) {
  [1]=>
  int(2)
  [3]=>
  int(4)
}

13. array_intersect_assoc

函数作用:返回两个或更多数组中有相同键名和键值的元素。

$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 2, 'd' => 4];

$intersected_array = array_intersect_assoc($array1, $array2);

var_dump($intersected_array);
// 输出结果:
array(1) {
  ["b"]=>
  int(2)
}

14. array_intersect_key

函数作用:返回两个或更多数组中有相同键名的元素。

$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 2, 'd' => 4];

$intersected_array = array_intersect_key($array1, $array2);

var_dump($intersected_array);
// 输出结果:
array(1) {
  ["b"]=>
  int(2)
}

15. array_intersect_uassoc

函数作用:返回两个或更多数组中有相同键名和键值的元素。使用用户自定义的比较函数来比较键名和键值。

$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['B' => 2, 'D' => 4];

$intersected_array = array_intersect_uassoc($array1, $array2, 'strcasecmp');

var_dump($intersected_array);
// 输出结果:
array(1) {
  ["b"]=>
  int(2)
}

16. array_intersect_ukey

函数作用:返回两个或更多数组中有相同键名的元素。使用用户自定义的比较函数来比较键名。

$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['B' => 2, 'D' => 4];

$intersected_array = array_intersect_ukey($array1, $array2, 'strcasecmp');

var_dump($intersected_array);
// 输出结果:
array(1) {
  ["b"]=>
  int(2)
}

17. array_map

函数作用:返回一个映射数组,其中每个元素都是回调函数的结果。

$numbers = [1, 2, 3];

$mapped_array = array_map(function($num){
    return $num * 2;
}, $numbers);

var_dump($mapped_array);
// 输出结果:
array(3) {
  [0]=>
  int(2)
  [1]=>
  int(4)
  [2]=>
  int(6)
}

18. array_merge_recursive

函数作用:递归地合并一个或多个数组。

$array1 = ['a' => ['b' => 1]];
$array2 = ['a' => ['c' => 2]];

$merged_array = array_merge_recursive($array1, $array2);

var_dump($merged_array);
// 输出结果:
array(1) {
  ["a"]=>
  array(2) {
    ["b"]=>
    int(1)
    ["c"]=>
    int(2)
  }
}

19. array_multisort

函数作用:对多个数组或多维数组进行排序。

$numbers = [5, 4, 3, 2, 1];
$names = ['Tom', 'Alice', 'Bob', 'David', 'Charlie'];

array_multisort($numbers, SORT_ASC, $names);

var_dump($names);
// 输出结果:
array(5) {
  [0]=>
  string(6) "Charlie"
  [1]=>
  string(5) "David"
  [2]=>
  string(5) "Alice"
  [3]=>
  string(3) "Bob"
  [4]=>
  string(3) "Tom"
}

20. array_pad

函数作用:在数组的开头或结尾填充数据。

$numbers = [1, 2, 3];

$padded_array = array_pad($numbers, 5, 0);

var_dump($padded_array);
// 输出结果:
array(5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(0)
  [4]=>
  int(0)
}

三、数组函数使用例子21-30

21. array_product

使用数组元素的乘积计算并返回结果。

$numbers = array(1, 2, 3, 4);
$result = array_product($numbers);
echo $result; // 输出 24

22. array_reduce

使用回调函数对数组进行迭代,将数组中的元素依次从左到右折叠(也称为缩减),并返回最终的值。

$numbers = array(1, 2, 3, 4);
$result = array_reduce($numbers, function($carry, $item){
    return $carry * $item;
});
echo $result; // 输出 24

23. array_replace

将一个数组的元素替换为另一个数组的对应元素。

$array1 = array('a', 'b', 'c');
$array2 = array(0 => 'd', 2 => 'e');
$result = array_replace($array1, $array2);
print_r($result); // 输出 Array ( [0] => d [1] => b [2] => e )

24. array_replace_recursive

递归地将一个数组的元素替换为另一个数组的对应元素。

$array1 = array('a', 'b', 'c' => array('x', 'y'));
$array2 = array(0 => 'd', 'c' => array(0 => 'z'));
$result = array_replace_recursive($array1, $array2);
print_r($result); // 输出 Array ( [0] => d [1] => b [c] => Array ( [0] => z [1] => y ) )

25. array_sum

计算数组所有元素的总和并返回。

$numbers = array(1, 2, 3, 4);
$result = array_sum($numbers);
echo $result; // 输出 10

26. array_udiff

使用用户自定义的回调函数对两个或多个数组进行比较,并返回差异的元素。

$array1 = array('a', 'b', 'c');
$array2 = array('b', 'c', 'd');
$result = array_udiff($array1, $array2, function($a, $b){
    return strcmp($a, $b);
});
print_r($result); // 输出 Array ( [0] => a )

27. array_udiff_assoc

array_udiff 类似,但同时比较键和值。

$array1 = array('a' => 1, 'b' => 2, 'c' => 3);
$array2 = array('a' => 2, 'b' => 2, 'd' => 4);
$result = array_udiff_assoc($array1, $array2, function($a, $b){
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
});
print_r($result); // 输出 Array ( [a] => 1 [c] => 3 )

28. array_walk

对数组的每个元素应用用户自定义的回调函数。

$array = array(1, 2, 3);
function multiply(&$value, $key){
    $value *= 2;
}
array_walk($array, 'multiply');
print_r($array); // 输出 Array ( [0] => 2 [1] => 4 [2] => 6 )

29. array_walk_recursive

array_walk 类似,但递归执行。

$array = array('a' => array(1, 2), 'b' => array(3, 4));
function multiply(&$value, $key){
    $value *= 2;
}
array_walk_recursive($array, 'multiply');
print_r($array); // 输出 Array ( [a] => Array ( [0] => 2 [1] => 4 ) [b] => Array ( [0] => 6 [1] => 8 ) )

30. asort

对数组按照值进行排序,并保留键值关联。

$array = array('b' => 2, 'a' => 1, 'c' => 3);
asort($array);
print_r($array); // 输出 Array ( [a] => 1 [b] => 2 [c] => 3 )

四、数组函数使用例子31-40

31. array_intersect()

求两个或多个数组的交集。

$array1 = array('apple', 'banana', 'orange');
$array2 = array('pear', 'banana', 'grape');
$result = array_intersect($array1, $array2);
print_r($result); // 输出:Array ( [1] => banana )

32. array_diff()

求两个数组的差集。

$array1 = array('apple', 'banana', 'orange');
$array2 = array('pear', 'banana', 'grape');
$result = array_diff($array1, $array2);
print_r($result); // 输出:Array ( [0] => apple [2] => orange )

33. array_merge()

将一个或多个数组合并为一个数组。

$array1 = array('apple', 'banana', 'orange');
$array2 = array('pear', 'banana', 'grape');
$result = array_merge($array1, $array2);
print_r($result); // 输出:Array ( [0] => apple [1] => banana [2] => orange [3] => pear [4] => banana [5] => grape )

34. array_push()

将一个或多个元素压入数组末尾。

$array1 = array('apple', 'banana', 'orange');
array_push($array1, 'pear', 'grape');
print_r($array1); // 输出:Array ( [0] => apple [1] => banana [2] => orange [3] => pear [4] => grape )

35. array_pop()

弹出数组最后一个值。

$array1 = array('apple', 'banana', 'orange');
$last = array_pop($array1);
print_r($array1); // 输出:Array ( [0] => apple [1] => banana )
echo $last; // 输出:orange

36. array_shift()

弹出数组第一个值。

$array1 = array('apple', 'banana', 'orange');
$first = array_shift($array1);
print_r($array1); // 输出:Array ( [0] => banana [1] => orange )
echo $first; // 输出:apple

37. array_unshift()

在数组开头插入一个或多个元素。

$array1 = array('apple', 'banana', 'orange');
array_unshift($array1, 'pear', 'grape');
print_r($array1); // 输出:Array ( [0] => pear [1] => grape [2] => apple [3] => banana [4] => orange )

38. array_flip()

交换数组中的键和值。

$array1 = array('name' => 'Tom', 'age' => 20);
$result = array_flip($array1);
print_r($result); // 输出:Array ( [Tom] => name [20] => age )

39. array_key_exists()

检查数组中是否存在指定的键名。

$array1 = array('name' => 'Tom', 'age' => 20);
if (array_key_exists('name', $array1)) {
    echo '存在键名name';
} else {
    echo '不存在键名name';
}
// 输出:存在键名name

40. array_values()

返回数组中所有的值,不包括键名。

$array1 = array('name' => 'Tom', 'age' => 20);
$result = array_values($array1);
print_r($result); // 输出:Array ( [0] => Tom [1] => 20 )

五、数组函数使用例子41-40

41. in_array()

检查数组中是否存在某个值。

$array1 = array('apple', 'banana', 'orange');
if (in_array('banana', $array1)) {
    echo '存在值banana';
} else {
    echo '不存在值banana';
}
// 输出:存在值banana

42. array_search()

搜索数组中指定的值并返回其键名。

$array1 = array('name' => 'Tom', 'age' => 20);
$key = array_search('Tom', $array1);
echo $key; // 输出:name

43. array_reverse()

将数组顺序翻转。

$array1 = array('apple', 'banana', 'orange');
$result = array_reverse($array1);
print_r($result); // 输出:Array ( [0] => orange [1] => banana [2] => apple )

44. array_slice()

从数组中取出一段。

$array1 = array('apple', 'banana', 'orange', 'pear', 'grape');
$result = array_slice($array1, 1, 3);
print_r($result); // 输出:Array ( [0] => banana [1] => orange [2] => pear )

45. array_splice()

在数组中插入或删除元素。

$array1 = array('apple', 'banana', 'orange', 'pear', 'grape');
array_splice($array1, 2, 2, 'melon');
print_r($array1); // 输出:Array ( [0] => apple [1] => banana [2] => melon [3] => grape )

46. array_unique()

删除数组中的重复值。

$array1 = array('apple', 'banana', 'orange', 'banana', 'grape');
$result = array_unique($array1);
print_r($result); // 输出:Array ( [0] => apple [1] => banana [2] => orange [4] => grape )

47. count()

返回数组中所有元素的个数。

$array1 = array('apple', 'banana', 'orange');
$count = count($array1);
echo $count; // 输出:3

48. current()

返回数组中当前指针指向的元素的值。

$array1 = array('apple', 'banana', 'orange');
echo current($array1); // 输出:apple

49. end()

将数组指针指向最后一个元素,并返回该元素的值。

$array1 = array('apple', 'banana', 'orange');
echo end($array1); // 输出:orange

50. next()

将数组指针向后移动一位,并返回该元素的值。

$array1 = array('apple', 'banana', 'orange');
echo next($array1); // 输出:banana

六、数组函数使用例子51-60

51. prev()

将数组指针向前移动一位,并返回该元素的值。

$array1 = array('apple', 'banana', 'orange');
end($array1);
echo prev($array1); // 输出:banana

52. reset()

将数组指针指向第一个元素,并返回该元素的值。

$array1 = array('apple', 'banana', 'orange');
echo reset($array1); // 输出:apple

53. sort()

对数组进行升序排序。

$array1 = array('orange', 'banana', 'apple');
sort($array1);
print_r($array1); // 输出:Array ( [0] => apple [1] => banana [2] => orange )

54. rsort()

对数组进行降序排序。

$array1 = array('orange', 'banana', 'apple');
rsort($array1);
print_r($array1); // 输出:Array ( [0] => orange [1] => banana [2] => apple )

55. ksort()

按照键名对数组进行升序排序。

$array1 = array('name' => 'Tom', 'age' => 20, 'country' => 'China');
ksort($array1);
print_r($array1); // 输出:Array ( [age] => 20 [country] => China [name] => Tom )

56. arsort()

按照键值对数组进行降序排序。

$array1 = array('name' => 'Tom', 'age' => 20, 'country' => 'China');
arsort($array1);
print_r($array1); // 输出:Array ( [name] => Tom [country] => China [age] => 20 )

57. shuffle()

随机打乱数组中元素的顺序。

$array1 = array('apple', 'banana', 'orange');
shuffle($array1);
print_r($array1); // 输出:随机打乱后的数组

58. array_rand()

从数组中随机取出一个或多个键名。

$array1 = array('apple', 'banana', 'orange', 'pear', 'grape');
$key = array_rand($array1);
echo $array1[$key]; // 输出:数组中随机取出一个元素的值

总结

以上就是关于本篇文章介绍的内容,常见的50多个高频数组函数使用总结,后续更多内容将收录在专栏PHP快速入门与实战中,感谢大家支持。

相关文章
|
2月前
|
存储 数据处理 PHP
深入浅出PHP编程之数组操作技巧
【10月更文挑战第30天】在PHP编程的海洋里,数组是一艘承载着数据结构的小船,掌握其操控之道,能让开发者在编码的旅程中乘风破浪。本文将带你领略数组的强大功能,从基础使用到高级应用,一步步揭开数组操作的神秘面纱。准备好你的航海装备,让我们启航吧!
45 4
|
4月前
|
PHP
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
本文介绍了解决PHP常见问题的步骤,包括定位和创建`php.ini`文件,以及解决`mb_strlen()`函数未定义和DLL模块加载错误的具体方法。
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
|
2月前
|
存储 缓存 搜索推荐
优化PHP数组性能
优化PHP数组性能
46 8
|
2月前
|
关系型数据库 MySQL 数据库连接
PHP内置函数
PHP内置函数
31 5
|
2月前
|
算法 搜索推荐 Java
05 一文解决PHP数组操作
路老师带你深入PHP世界,从数组的基础知识讲起,包括数组的创建、赋值、类型(数字索引数组与关联数组)、多维数组,以及常用数组函数如遍历、统计、查询、添加、删除重复元素和排序等。实例讲解,轻松上手。下期预告:PHP面向对象。
27 2
|
4月前
|
存储 API PHP
php学习笔记-php数组的创建和使用,数组常用函数-day03
关于PHP数组的创建、使用以及常用函数的详细学习笔记。
php学习笔记-php数组的创建和使用,数组常用函数-day03
|
3月前
|
Unix PHP 数据库
PHP日期和时间Date()函数获取当前时间
通过灵活运用 `date()`函数及其丰富的格式选项,PHP开发者可以轻松地在应用程序中处理和展示日期及时间信息。无论是需要精确到秒的完整时间戳,还是仅仅展示日期或时间的某一部分,`date()`函数都能胜任。理解并熟练应用这些格式化技巧,对于提升代码的可读性和维护性至关重要。
74 1
|
4月前
|
存储 PHP
PHP编程中的数组操作技巧
【9月更文挑战第28天】在PHP编程中,数组是一种基础且强大的数据结构,它可以存储多个值,并且允许我们使用键来访问这些值。本文将介绍一些实用的PHP数组操作技巧,包括创建数组、遍历数组、排序数组和合并数组等。通过掌握这些技巧,你将能够更高效地处理数据和解决实际问题。
|
4月前
|
存储 数据处理 PHP
深入理解PHP中的数组
【9月更文挑战第3天】在PHP编程中,数组扮演着不可或缺的角色。它们不仅提供了一种灵活的方式来存储和操作数据,还极大地丰富了开发者处理复杂信息结构的能力。本文将带你深入了解PHP数组的基础知识、高级特性以及如何高效地利用数组来简化代码逻辑,提升开发效率。
|
4月前
|
XML SQL PHP
php学习笔记-php字符串及字符串常用函数总结-day04
本文总结了PHP中字符串的三种定义方式和常用字符串处理函数,包括字符串的修剪、转换、长度计算、子串操作、比较、连接、分割及替换等操作。