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

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

@TOC


前言

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

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

1. is_array

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

语法:

bool is_array ( mixed $var )

示例:

$arr = array(1, 2, 3);
{
   
   mathJaxContainer[0]}arr);  // true

2. array_change_key_case

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

语法:

array array_change_key_case ( array {
   
   mathJaxContainer[1]}case = CASE_LOWER ] )

示例:

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

3. array_chunk

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

语法:

array array_chunk ( array {
   
   mathJaxContainer[3]}size [, bool $preserve_keys = false ] )

示例:

$arr = array(1, 2, 3, 4, 5);
{
   
   mathJaxContainer[4]}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 {
   
   mathJaxContainer[5]}column_key [, mixed $index_key = null ] )

示例:

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

5. array_combine

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

语法:

array array_combine ( array {
   
   mathJaxContainer[7]}values )

示例:

$keys = array(1, 2, 3);
$values = array('a', 'b', 'c');
{
   
   mathJaxContainer[8]}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);
{
   
   mathJaxContainer[9]}arr);
print_r($result);  // output: Array ( [1] => 1 [2] => 2 [3] => 3 )

7. array_diff_assoc

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

语法:

array array_diff_assoc ( array {
   
   mathJaxContainer[10]}array2 [, array $... ] )

示例:

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

8. array_diff_key

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

语法:

array array_diff_key ( array {
   
   mathJaxContainer[12]}array2 [, array $... ] )

示例:

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

9. array_diff_uassoc

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

语法:

array array_diff_uassoc ( array {
   
   mathJaxContainer[14]}array2 [, array {
   
   mathJaxContainer[15]}key_compare_func )

示例:

function compare({
   
   mathJaxContainer[16]}b) {
   
   
    if ({
   
   mathJaxContainer[17]}b) {
   
   
        return 0;
    }
    return ({
   
   mathJaxContainer[18]}b) ? 1 : -1;
}

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

10. array_diff_ukey

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

语法:

array array_diff_ukey ( array {
   
   mathJaxContainer[20]}array2 [, array {
   
   mathJaxContainer[21]}key_compare_func )

示例:

function compare({
   
   mathJaxContainer[22]}b) {
   
   
    if ({
   
   mathJaxContainer[23]}b) {
   
   
        return 0;
    }
    return ({
   
   mathJaxContainer[24]}b) ? 1 : -1;
}

$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('a' => 1, 'b' => 4);
{
   
   mathJaxContainer[25]}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];

{
   
   mathJaxContainer[26]}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];

{
   
   mathJaxContainer[27]}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];

{
   
   mathJaxContainer[28]}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];

{
   
   mathJaxContainer[29]}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];

{
   
   mathJaxContainer[30]}array1, $array2, 'strcasecmp');

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

17. array_map

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

$numbers = [1, 2, 3];

{
   
   mathJaxContainer[31]}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]];

{
   
   mathJaxContainer[32]}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({
   
   mathJaxContainer[33]}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];

{
   
   mathJaxContainer[34]}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);
{
   
   mathJaxContainer[35]}numbers);
echo $result; // 输出 24

22. array_reduce

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

$numbers = array(1, 2, 3, 4);
{
   
   mathJaxContainer[36]}numbers, function({
   
   mathJaxContainer[37]}item){
   
   
    return {
   
   mathJaxContainer[38]}item;
});
echo $result; // 输出 24

23. array_replace

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

$array1 = array('a', 'b', 'c');
$array2 = array(0 => 'd', 2 => 'e');
{
   
   mathJaxContainer[39]}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'));
{
   
   mathJaxContainer[40]}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);
{
   
   mathJaxContainer[41]}numbers);
echo $result; // 输出 10

26. array_udiff

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

$array1 = array('a', 'b', 'c');
$array2 = array('b', 'c', 'd');
{
   
   mathJaxContainer[42]}array1, {
   
   mathJaxContainer[43]}a, $b){
   
   
    return strcmp({
   
   mathJaxContainer[44]}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);
{
   
   mathJaxContainer[45]}array1, {
   
   mathJaxContainer[46]}a, $b){
   
   
    if ({
   
   mathJaxContainer[47]}b) {
   
   
        return 0;
    }
    return ({
   
   mathJaxContainer[48]}b) ? 1 : -1;
});
print_r($result); // 输出 Array ( [a] => 1 [c] => 3 )

28. array_walk

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

$array = array(1, 2, 3);
function multiply(&{
   
   mathJaxContainer[49]}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(&{
   
   mathJaxContainer[50]}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');
{
   
   mathJaxContainer[51]}array1, $array2);
print_r($result); // 输出:Array ( [1] => banana )

32. array_diff()

求两个数组的差集。

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

33. array_merge()

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

$array1 = array('apple', 'banana', 'orange');
$array2 = array('pear', 'banana', 'grape');
{
   
   mathJaxContainer[53]}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');
{
   
   mathJaxContainer[54]}array1);
print_r($array1); // 输出:Array ( [0] => apple [1] => banana )
echo $last; // 输出:orange

36. array_shift()

弹出数组第一个值。

$array1 = array('apple', 'banana', 'orange');
{
   
   mathJaxContainer[55]}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);
{
   
   mathJaxContainer[56]}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);
{
   
   mathJaxContainer[57]}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);
{
   
   mathJaxContainer[58]}array1);
echo $key; // 输出:name

43. array_reverse()

将数组顺序翻转。

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

44. array_slice()

从数组中取出一段。

$array1 = array('apple', 'banana', 'orange', 'pear', 'grape');
{
   
   mathJaxContainer[60]}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');
{
   
   mathJaxContainer[61]}array1);
print_r($result); // 输出:Array ( [0] => apple [1] => banana [2] => orange [4] => grape )

47. count()

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

$array1 = array('apple', 'banana', 'orange');
{
   
   mathJaxContainer[62]}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');
{
   
   mathJaxContainer[63]}array1);
echo {
   
   mathJaxContainer[64]}key]; // 输出:数组中随机取出一个元素的值

总结

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

相关文章
|
5月前
|
Shell PHP Windows
PHP代码审计(四)PHP文件操作函数(2)
改变文件所有者。如果成功则返回 TRUE,如果失败则返回 FALSE。 语法:chown(file,owner)
38 0
|
5月前
|
安全 Unix Shell
PHP代码审计(四)PHP文件操作函数(1)
改变文件所有者。如果成功则返回 TRUE,如果失败则返回 FALSE。 语法:chown(file,owner)
38 0
|
2天前
|
运维 JavaScript Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,Php环境,配置取消禁止函数exec如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
16 4
|
3月前
|
PHP
从建站到拿站 -- PHP判断循环及函数
从建站到拿站 -- PHP判断循环及函数
12 0
|
3月前
|
PHP
从PHP开始学渗透 -- 函数
从PHP开始学渗透 -- 函数
8 0
|
3月前
|
JSON JavaScript Java
【PHP】英文博客专栏PHP快速入门个人笔记
【PHP】英文博客专栏PHP快速入门个人笔记
120 1
php案例:判断这个是繁体字还是简体字(满足绝大部分字符)用php函数
php案例:判断这个是繁体字还是简体字(满足绝大部分字符)用php函数
php案例:判断这个是繁体字还是简体字(满足绝大部分字符)用php函数
|
4月前
|
PHP 数据安全/隐私保护
php案例:自己写个数组转换成对象 对象转换成数组的的功能出来吧
php案例:自己写个数组转换成对象 对象转换成数组的的功能出来吧
php案例:自己写个数组转换成对象 对象转换成数组的的功能出来吧