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快速入门与实战中,感谢大家支持。

相关文章
|
7天前
|
存储 数据处理 PHP
深入理解PHP中的数组
【9月更文挑战第3天】在PHP编程中,数组扮演着不可或缺的角色。它们不仅提供了一种灵活的方式来存储和操作数据,还极大地丰富了开发者处理复杂信息结构的能力。本文将带你深入了解PHP数组的基础知识、高级特性以及如何高效地利用数组来简化代码逻辑,提升开发效率。
|
13天前
|
安全 PHP 开发者
PHP中的数组操作技巧
【8月更文挑战第29天】在PHP编程中,数组是一个基本且强大的数据结构。本文将通过浅显易懂的语言和生动的比喻,带你深入理解PHP数组的操作技巧。我们将一起探讨如何高效地使用数组函数,以及如何通过这些技巧来优化你的代码。无论你是PHP初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息。让我们一起探索数组的世界,发现它的无限可能!
|
15天前
|
数据处理 PHP 开发者
PHP中的数组操作技巧:提高代码效率与可读性
【8月更文挑战第27天】在PHP开发中,数组是数据处理的核心。掌握数组的操作不仅能提升代码的执行效率,还能增强代码的可读性。本文将通过实际的编码示例,展示如何在PHP中高效地使用数组,包括数组的创建、遍历、排序、查找和过滤等常用操作,以及一些高级技巧,如使用匿名函数和数组的解构赋值。无论你是新手还是有经验的开发者,这些技巧都将对你的PHP编程之旅大有裨益。
|
16天前
|
Linux PHP
Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程
【8月更文挑战第27天】本文介绍两种禁用PHP执行的方法:使用`PHP_diseval_extension`禁用和通过`suhosin`禁用。由于`suhosin`不支持PHP8,仅适用于PHP7及以下版本,若服务器安装了PHP5.6,则需对应安装`suhosin-0.9.38`版本。文章提供了详细的安装步骤,并强调了宝塔环境下与普通环境下的PHP路径差异。安装完成后,在`php.ini`中添加`suhosin.so`扩展并设置`executor.disable_eval = on`以禁用执行功能。最后通过测试代码验证是否成功禁用,并重启`php-fpm`服务生效。
15 2
|
18天前
|
设计模式 算法 PHP
深入理解PHP中的数组操作探索编程之美:从代码到架构的思维转变
【8月更文挑战第24天】在PHP编程中,数组是基础且强大的数据结构。本文将通过浅显易懂的方式,介绍如何在PHP中高效地操作数组,包括创建、遍历、排序和过滤等常见任务。无论你是初学者还是有经验的开发者,这篇文章都会带给你新的启示。 【8月更文挑战第24天】在编程的世界中,代码不仅仅是冰冷的字符排列,它承载着思想、解决问题的智慧和创新的灵魂。本文将通过个人的技术感悟,带领读者从编写单一功能的代码片段出发,逐步深入到整个软件架构的设计哲学,探索如何将代码块转化为高效、可维护和可扩展的系统。我们将一起见证,当代码与架构思维相结合时,如何引发技术实践的革命性飞跃。
|
18天前
|
存储 PHP 数据库
深入理解PHP中的数组操作
【8月更文挑战第24天】在编程世界中,数组是数据结构的基石之一。PHP作为广受欢迎的后端开发语言,其对数组的强大支持和灵活操作让开发者能够高效地处理数据集合。本文将深入浅出地探讨PHP中数组的基本概念、常用函数以及高级技巧,帮助读者提升在PHP项目中处理数组的能力。
|
22天前
|
JavaScript 前端开发 PHP
|
11天前
|
测试技术 PHP 开发者
PHP中的数组遍历技巧与性能优化
【8月更文挑战第31天】在PHP编程中,数组是最常用的数据结构之一。掌握数组的遍历技巧不仅能提高代码的可读性,还能在一定程度上提升程序的运行效率。本文将介绍几种常见的数组遍历方法,并通过实际代码示例对比它们的性能差异,帮助开发者在编写PHP代码时做出更优的选择。
|
13天前
|
存储 数据处理 PHP
探索PHP中的数组操作技巧
【8月更文挑战第30天】在PHP编程的世界中,数组是数据存储和操作的核心。掌握数组的各种操作,可以大幅提高代码的效率和可读性。本文将带你深入理解PHP数组的创建、遍历、排序以及多维数组的使用,让你在处理复杂数据时更加得心应手。
|
1月前
|
JSON 前端开发 JavaScript
php中JSON或数组到formData的键值对转换
转换JSON或数组到formData格式的键值对并不复杂。PHP的 `json_decode()`与 `http_build_query()`是实现这一转换过程的关键函数。理解这个转换过程对于开发中处理各种AJAX请求时调整数据格式至关重要。这样,无论是处理来自客户端的JSON字符串,还是服务器端的数组数据,都能够灵活地转换为适合网络传输的格式,确保数据交换的顺畅和高效。
45 4