Blogger Information
Blog 17
fans 1
comment 0
visits 20137
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP内置数组函数十例
大A
Original
938 people have browsed it

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. )
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:对于每一个函数, 每一个参数都要理解, 特别是常用的
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post