PHP数组函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP数组函数相关的知识,希望对你有一定的参考价值。

1. array_merge() 函数把一个或多个数组合并为一个数组

array_merge(array1,array2,array3...)

如果两个或更多个数组元素有相同的键名,则最后的元素会覆盖其他元素。

如果您仅向 array_merge() 函数输入一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引。

2. array_merge_recursive() 函数把一个或多个数组合并为一个数组

array_merge_recursive(array1,array2,array3...)

该函数与 array_merge() 函数的区别在于处理两个或更多个数组元素有相同的键名时。array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。

如果您仅仅向 array_merge_recursive() 函数输入一个数组,结果与 array_merge() 相同,函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引。

3. array_multisort() 函数返回排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。

array_multisort(array1,sorting order,sorting type,array2,array3...)

sorting order可选。规定排列顺序。可能的值:

  • SORT_ASC - 默认。按升序排列 (A-Z)。
  • SORT_DESC - 按降序排列 (Z-A)。

sorting type

可选。规定排序类型。可能的值:

  • SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)。
  • SORT_NUMERIC - 把每一项作为数字来处理。
  • SORT_STRING - 把每一项作为字符串来处理。
  • SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。
  • SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。
  • SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。

字符串键名将被保留,但是数字键名将被重新索引,从 0 开始,并以 1 递增。

4. array_pad() 函数将指定数量的带有指定值的元素插入到数组中

array_pad(array,size,value)

如果您将 size 参数设置为负数,该函数会在原始数组之前插入新的元素(参见下面的实例)。

注释:如果 size 参数小于原始数组的长度,该函数不会删除任何元素。

返回带有新元素的数组。

5. array_pop() 函数删除数组中的最后一个元素

array_pop(array)

返回数组的最后一个值。如果数组是空的,或者非数组,将返回 NULL。

6. array_product() 函数计算并返回数组的乘积

返回整数或者浮点数的乘积。

php 5.3.6 起,空数组的乘积为 1。在 PHP 5.3.6 之前,空数组的乘积为 0。

7. array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度

该函数等于多次调用 $array[] = $value。

array_push(array,value1,value2...)

即使数组中有字符串键名,您添加的元素也始终是数字键。(参见例子 2)

如果用 array_push() 来给数组增加一个单元,还不如用 $array[] =,因为这样没有调用函数的额外负担。

8. array_rand() 函数返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组

array_rand(array,number) 可选。规定返回多少随机键名。

9. array_reduce() 函数向用户自定义函数发送数组中的值,并返回一个字符串

如果数组是空的且未传递 initial 参数,该函数返回 NULL

array_reduce(array,myfunction,initial)

array_reduce() 函数用回调函数迭代地将数组简化为单一的值。

如果指定第三个参数,则该参数将被当成是数组中的第一个值来处理,或者如果数组为空的话就作为最终返回值。

10. array_replace() 函数使用后面数组的值替换第一个数组的值

您可以向函数传递一个数组,或者多个数组。

array_replace(array1,array2,array3...)

如果一个键存在于第一个数组 array1 同时也存在于第二个数组 array2,第一个数组 array1 中的值将被第二个数组 array2 中的值替换。如果一个键仅存在于第一个数组 array1,它将保持不变。

如果一个键存在于第二个数组 array2,但是不存在于第一个数组 array1,则会在第一个数组 array1 中创建这个元素。

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

11. array_replace_recursive() 函数递归地使用后面数组的值替换第一个数组的值

您可以向函数传递一个数组,或者多个数组。

array_replace_recursive(array1,array2,array3...)

如果一个键存在于第一个数组 array1 同时也存在于第二个数组 array2,第一个数组 array1 中的值将被第二个数组 array2 中的值替换。如果一个键仅存在于第一个数组 array1,它将保持不变。如果一个键存在于第二个数组 array2,但是不存在于第一个数组array1,则会在第一个数组 array1 中创建这个元素。如果传递了多个替换数组,它们将被按顺序依次处理,后面数组的值将覆盖之前数组的值。

返回被替换的数组,如果发生错误则返回 NULL。

以上是关于PHP数组函数的主要内容,如果未能解决你的问题,请参考以下文章

超级有用的9个PHP代码片段

PHP项目开发经验整理

使 PHP 代码更加简洁的几个小技巧

几个关于js数组方法reduce的经典片段

21个常用代码片段

js简洁代码片段