博客列表 >PHP内置数组函数十例

PHP内置数组函数十例

大A
大A原创
2020年04月26日 20:43:19933浏览

1. array_chunk

定义


把数组分割为新的数组块。每个数组的单元数目由 size 参数决定。最后一个数组的单元数目可能会少几个。
可选参数 preserve_key 是一个布尔值,它指定新数组的元素是否有和原数组相同的键(用于关联数组),还是从 0 开始的新数字键(用于索引数组)。默认是分配新的键名。


语法

array_chunk(array,size,preserve_key);

参数 描述
array 必需。规定要使用的数组。
size 必需。整数值,规定每个新数组包含多少个元素。
preserve_key 可选。可能的值:true - 保留原始数组中的键名。false - 默认。每个结果数组使用从零开始的新数组索引。

例子

  1. $array=['a','b','c','d','e5'=>'a',[1,2,3,4]];
  2. $arr=array_chunk($array,4);
  3. printf('<pre>%s</pre><hr>',print_r($arr,true));
  4. -------------------------------
  5. //输出结果
  6. Array
  7. (
  8. [0] => Array
  9. (
  10. [0] => a
  11. [1] => b
  12. [2] => c
  13. [3] => d
  14. )
  15. [1] => Array
  16. (
  17. [0] => a
  18. [1] => Array
  19. (
  20. [0] => 1
  21. [1] => 2
  22. [2] => 3
  23. [3] => 4
  24. )
  25. )
  26. )

2. array_key_exists

定义

检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false。

语法

array_key_exists(key,array)

参数 描述
key 必需,规定键名
array 必须,规定数组

例子

  1. $array=['a','b','c','d','e5'=>'a',[1,2,3,4]];
  2. var_dump (array_key_exists('e5',$array));
  3. echo '<br>';
  4. var_dump(array_key_exists('2',$array));
  5. -------------------------------
  6. //输出结果
  7. boolean true
  8. boolean true

3. array_keys

定义

返回包含数组中所有键名的一个新数组
如果提供了第二个参数,则只返回键值为该值的键名
如果 strict 参数指定为 true,则严格检查键值的据类型(例如: 1与”1”是不同的)

语法

array_keys(array,value,strict)

参数 描述
array 必须,规定数组
value 可选,可指定键值然后返回键值对应的键名
strict 可选,与value参数一起使用,为true时对类型精选严格比较

例子

  1. $array=['a','b','c','d','e5'=>'a',[1,2,3,4]];
  2. $arr=array_keys($array,'a');
  3. printf('<pre>%s</pre><hr>',print_r($arr,true));
  4. $arr=array_keys($array);
  5. printf('<pre>%s</pre><hr>',print_r($arr,true));
  6. -------------------------------
  7. //输出结果
  8. Array
  9. (
  10. [0] => 0
  11. [1] => e5
  12. )
  13. Array
  14. (
  15. [0] => 0
  16. [1] => 1
  17. [2] => 2
  18. [3] => 3
  19. [4] => e5
  20. [5] => 4
  21. )

4. array_rand

定义

返回数组中的一个随机键名,也可以指定数量,返回包含随机建名的数组

语法

array_rand(array,number)

参数 描述
array 必须,规定数组
number 可选,规定返回多少个随机元素

例子

  1. $array=['a','b','c','d','e5'=>'a',[1,2,3,4]];
  2. $arr=array_rand($array);
  3. printf('<pre>%s</pre><hr>',print_r($arr,true));
  4. $arr=array_rand($array,3);
  5. printf('<pre>%s</pre><hr>',print_r($arr,true));
  6. -------------------------------
  7. //输出结果
  8. 4
  9. Array
  10. (
  11. [0] => 0
  12. [1] => 2
  13. [2] => 3
  14. )

5. array_merge

定义

把一个或多个数组合并为一个数组并返回
索引数组键名相同时不会被合并成数组,而是被排序到数组的尾部
关联数组键名相同时,最后的元素会覆盖其他元素

语法

array_merge(array1,array2,array3...)

参数 描述
array1 必需,规定数组
array2 可选,规定数组
array3 可选,规定数组

例子

  1. $array=['a','b','a'=>[1,2,'z'=>3,4],'y2'=>'c','d','e5'=>'a'];
  2. $array2=['e5'=>'123','s','y2'=>'yy',564,'a'=>[1,2,'z'=>3,'a','b','c']];
  3. $arr=array_merge($array,$array2);
  4. printf('<pre>%s</pre><hr>',print_r($arr,true));
  5. -------------------------------
  6. //输出结果
  7. Array
  8. (
  9. [0] => a
  10. [1] => b
  11. [a] => Array
  12. (
  13. [0] => 1
  14. [1] => 2
  15. [z] => 3
  16. [2] => a
  17. [3] => b
  18. [4] => c
  19. )
  20. [y2] => yy
  21. [2] => d
  22. [e5] => 123
  23. [3] => s
  24. [4] => 564
  25. )

6. array_merge_recursive

定义

把一个或多个数组合并为一个数组并返回
索引数组键名相同时不会被合并成数组,而是被排序到数组的尾部
关联数组键名相同时,会把对应的键值合并成索引数组
该函数与 array_merge() 函数的区别在于处理多维数组会对元素进行覆盖

语法

array_merge_recursive(array1,array2,array3...)

参数 描述
array1 必须,规定数组
array2 可选,规定数组
array3... 可选,规定数组

例子

  1. $array=['a','b','a'=>[1,2,'z'=>3,4],'y2'=>'c','d','e5'=>'a'];
  2. $array2=['e5'=>'123','s','y2'=>'yy',564,'a'=>[1,2,'z'=>3,'a','b','c']];
  3. $arr=array_merge_recursive($array,$array2);
  4. printf('<pre>%s</pre><hr>',print_r($arr,true));
  5. -------------------------------
  6. //输出结果
  7. Array
  8. (
  9. [0] => a
  10. [1] => b
  11. [a] => Array
  12. (
  13. [0] => 1
  14. [1] => 2
  15. [z] => Array
  16. (
  17. [0] => 3
  18. [1] => 3
  19. )
  20. [2] => 4
  21. [3] => 1
  22. [4] => 2
  23. [5] => a
  24. [6] => b
  25. [7] => c
  26. )
  27. [y2] => Array
  28. (
  29. [0] => c
  30. [1] => yy
  31. )
  32. [2] => d
  33. [e5] => Array
  34. (
  35. [0] => a
  36. [1] => 123
  37. )
  38. [3] => s
  39. [4] => 564
  40. )

7. array_replace

定义

使用后面数组的值替换第一个数组的值,返回被替换的数组
如果传递了多个替换数组,它们将被按顺序依次处理,后面数组的值将覆盖之前数组的值

语法

array_replace(array1,array2,array3...)

参数 描述
array1 必需,指定一个数组
array2 可选,指定一个要替换 array1 的值的数组
array3,... 可选,指定多个要替换 array1 和 array2, … 的值的数组,后面数组的值将覆盖之前数组的值

例子

  1. $array=['a','b','a'=>[1,2,'a6'=>666,'z'=>9,4],'y2'=>'c','d','e5'=>'a'];
  2. $array2=['e5'=>'123','s','y2'=>'yy',564,'a'=>[1,2,'z'=>3,'a','b','c']];
  3. $arr=array_replace($array,$array2);
  4. printf('<pre>%s</pre><hr>',print_r($arr,true));
  5. -------------------------------
  6. //输出结果
  7. Array
  8. (
  9. [0] => s
  10. [1] => 564
  11. [a] => Array
  12. (
  13. [0] => 1
  14. [1] => 2
  15. [z] => 3
  16. [2] => a
  17. [3] => b
  18. [4] => c
  19. )
  20. [y2] => yy
  21. [2] => d
  22. [e5] => 123
  23. )

8. array_replace_recursive

定义

递归地使用后面数组的值替换第一个数组的值,返回被替换的数组
该函数与array_replace()的区别是
array_replace 不会处理二级,只会把VALUE看成一个整体
array_replace_recursive会对多维数组进行操作

语法

array_replace_recursive(array1,array2,array3...)

参数 描述
array1 必需,指定一个数组
array2 可选,指定一个要替换 array1 的值的数组
array3,... 可选,指定多个要替换 array1 和 array2, … 的值的数组,后面数组的值将覆盖之前数组的值

例子

  1. $array=['a','b','a'=>[1,2,'a6'=>666,'z'=>9,4],'y2'=>'c','d','e5'=>'a'];
  2. $array2=['e5'=>'123','s','y2'=>'yy',564,'a'=>[1,2,'z'=>3,'a','b','c']];
  3. $arr=array_replace_recursive($array,$array2);
  4. printf('<pre>%s</pre><hr>',print_r($arr,true));
  5. -------------------------------
  6. //输出结果
  7. Array
  8. (
  9. [0] => s
  10. [1] => 564
  11. [a] => Array
  12. (
  13. [0] => 1
  14. [1] => 2
  15. [a6] => 666
  16. [z] => 3
  17. [2] => a
  18. [3] => b
  19. [4] => c
  20. )
  21. [y2] => yy
  22. [2] => d
  23. [e5] => 123
  24. )

9 array_diff_key

定义

使用键名比较计算数组的差集
根据 array1 中的键名和 array2 进行比较,返回不同键名的数组

语法

array_diff_key(array1,array2)

参数 描述
array1 必需,指定一个数组
array2 可选,指定一个要在 array1 内去除的元素的数组

例子

  1. $array=['a','b','a'=>[1,2,'a6'=>666,'z'=>9,4],'y2'=>'c','d','e5'=>'a'];
  2. $array2=['e5'=>'123','s','y2'=>'yy',564,'a'=>[1,2,'z'=>3,'a','b','c']];
  3. $arr=array_diff_key($array,$array2);
  4. printf('<pre>%s</pre><hr>',print_r($arr,true));
  5. -------------------------------
  6. //输出结果
  7. Array
  8. (
  9. [2] => d
  10. )

10 array_diff_assoc

定义

带索引检查计算数组的差集
返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值

语法

array_diff_assoc(array1,array2)

参数 描述
array1 必需,指定一个数组
array2 可选,指定一个要在 array1 内去除的元素的数组

例子

  1. $array=['a','b','a'=>[1,2,'a6'=>666,'z'=>9,4],'y2'=>'c','d','e5'=>'a'];
  2. $array2=['e5'=>'123','s','y2'=>'c',564,'a'=>[1,2]];
  3. $arr=array_diff_assoc($array,$array2);
  4. printf('<pre>%s</pre><hr>',print_r($arr,true));
  5. -------------------------------
  6. //输出结果
  7. Array
  8. (
  9. [0] => a
  10. [1] => b
  11. [2] => d
  12. [e5] => a
  13. )
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议