统计
count
计算数组中的单元数目或对象中的属性个数
count( mixed $var[, int $mode = COUNT_NORMAL] ) : int
var
数组或者对象。
mode
设为
COUNT_RECURSIVE
(或 1),将递归地对数组计数。对计算多维数组的所有单元尤其有用。默认值是 0。识别不了无限递归。
返回 var
中的单元数目。如果 var
不是数组类型或者实现了 Countable
接口的对象,将返回 1,有一个例外,如果 var
是 NULL 则结果是 0。
sizeof(count 的别名)
array_count_values
统计数组中所有的值出现的次数
array_count_values( array $input) : array
input
输入的数组
返回一个关联数组,用 input
数组中的值作为键名,该值在数组中出现的次数作为值。
对数组里面的每个不是 string
和 integer
类型的元素抛出一个警告错误(E_WARNING)。
array_sum
计算数组中所有值的和
array_sum( array $array) : number
array
输入的数组
返回一个整数或浮点数表示的所有值的和
array_product
计算数组中所有值的乘积
array_product( array $array) : number
array
输入的数组
返回一个整数或浮点数表示的所有值的乘机
数组内查找
array_key_exists
检查给定的键名或索引是否存在于数组中
array_key_exists( mixed $key, array $search) : bool
key
要检查的键。
search
一个数组,包含待检查的键。
成功时返回 TRUE, 或者在失败时返回 FALSE。
key_exists(array_key_exists的别名)
in_array
检查数组中是否存在某个值
in_array( mixed $needle, array $haystack[, bool $strict = FALSE] ) : bool
needle
待搜索的值。(如果 needle 是字符串,则比较是区分大小写的)
haystack
要检查的数组
strict
如果值为 TRUE 则执行严格检查(检查类型和值是否都相同)
如果存在则返回 TRUE,否则返回 FALSE。
array_search
在数组中搜索给定的值,如果成功则返回相应的键名
array_search( mixed $needle, array $haystack[, bool $strict = false] ) : mixed
needle
待搜索的值。(如果 needle 是字符串,则比较是区分大小写的)
haystack
要检查的数组
strict
如果值为 TRUE 则执行严格检查(检查类型和值是否都相同)
如果存在则返回第一次出现的键名,否则返回 FALSE。
获取数组列集或值集
array_keys
返回数组中部分的或所有的键名
array_keys( array $array[, mixed $search_value[, bool $strict = false]] ) : array
input
一个数组,包含了要返回的键。
search_value
如果指定了这个参数,只有包含这些值的键才会返回。
strict
如果值为 TRUE 则执行严格检查(检查类型和值是否都相同)
返回 input
中的所有键(指定了 search_value
时返回部分键)
array_rand
从数组中随机返回一个或多个单元的键名
array_rand( array $input[, int $num_req = 1] ) : mixed
input
输入的数组。
num_req
指明取出的单元个数,缺省为 1。如果指定的数目超过了数组里的数量将会产生一个 E_WARNING 级别的错误。
如果 num_req 为 1,返回一个随机单元的键名,大于 1 则返回多个随机键名组成的数组
array_values
返回数组中所有的值
array_values( array $input) : array
input
输入数组
返回 input 数组中所有的值并给其建立数字索引。
array_column
返回数组中指定的一列值
array_column( array $input, mixed $column_key[, mixed $index_key] ) : array
input
需要取出数组列的多维数组(或结果集)
column_key
需要返回值的列,它可以是索引数组的列索引,或者是关联数组的列的键。也可以是NULL,此时将返回整个数组(配合
index_key
参数来重置数组键的时候,非常管用)index_key
作为返回数组的索引/键的列,它可以是该列的整数索引,或者字符串键值。
返回 input
数组中键值为 column_key
的列,如果指定了可选参数 index_key
,那么 input
数组中的这一列的值将作为返回数组中对应值的键。
array_slice
从数组中返回指定的一段
array_slice( array $input, int $offset[, int $length = NULL[, bool $preserve_keys = false]] ) : array
参数
input
输入的数组。
offset
如果
offset
非负,则序列将从input
中的此偏移量开始。如果offset
为负,则序列将从input
中距离末端这么远的地方开始。length
如果给出了
length
并且为正,则序列中将具有这么多的单元。如果给出了length
并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从offset
开始一直到input
的末端。preserve_keys
设为 FALSE,那新数组将用从零开始的新数字索引。设为 TRUE 将保留输入数组中的键名。默认值是 FALSE。
返回根据 offset
和 length
参数所指定的 array
数组中的一段序列
转换
array_chunk
返回一个由多个分块数组组成的二维数组
array_chunk( array $input, int $size[, bool $preserve_keys = false] ) : array
input
需要操作的数组
size
每个分块的单元数目
preserve_keys
设为 FALSE,那每个结果数组将用从零开始的新数字索引。设为 TRUE 将保留输入数组中的键名。默认值是 FALSE。
返回一个数组,该数组由多个分块数组组成,每个分块数组的单元数目由 size
决定(最后一个分块数组的单元数目可能会少于 size
个)
array_unique
移除数组中重复的值
array_unique( array $array[, int $sort_flags = SORT_STRING] ) : array
array
输入的数组。
sort_flags
排序的规则:
SORT_REGULAR
- 正常比较单元(不改变类型)SORT_NUMERIC
- 单元被作为数字来比较SORT_STRING
- 单元被作为字符串来比较(默认值)SORT_LOCALE_STRING
- 根据当前的区域(locale)设置来把单元当作字符串比较,可以用 setlocale() 来改变。
先将数组进行排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。
返回移除后没有重复值的数组
array_flip
交换数组中的键和值
array_flip( array $trans) : array
trans
输入的数组
返回一个反转后的数组,例如 trans
中的键名变成了值,而 trans
中的值成了键名。
注意 trans
中的值需要能够作为合法的键名,例如需要是 integer
或者 string
。如果值的类型不对将发出一个警告,并且有问题的键/值对将不会反转。
如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了。
array_change_key_case
返回字符串键名全为小写或大写的数组
array_change_key_case( array $input[, int $case = CASE_LOWER] ) : array
input
需要操作的数组。
case
CASE_LOWER
(默认值):键名改为全小写CASE_UPPER
:键名改为全大写
返回一个键全是小写或者全是大写的数组;如果输入值(input)不是一个数组,那么返回 FALSE
如果一个数组中的多个键名经过本函数后变成一样的话(例如 “keY” 和 “kEY”),最后一个值将覆盖其它的值。
array_reverse
返回一个单元顺序相反的数组
array_reverse( array $array[, bool $preserve_keys = false] ) : array
array
输入的数组。
preserve_keys
如果设置为 TRUE 会保留数字的键。非数字的键则不受这个设置的影响,总是会被保留。
返回反转后的数组。
array_pad
用值将数组填补到指定长度
array_pad( array $input, int $pad_size, mixed $pad_value) : array
input
需要被填充的原始数组。
pad_size
新数组的长度。
pad_value
将被填充的值,只有在
input
的现有长度小于pad_size
的长度时才有效。
返回 input
用 pad_value
填充到 pad_size
指定的长度之后的一个副本。如果 pad_size
为正,则填补到数组的右侧,如果为负则从左侧开始填补。如果 pad_size
的绝对值小于或等于 input
数组的长度则没有任何填补。
指针
current
返回数组中的当前单元
pos(current 的别名)
key
返回数组中当前单元的键名
next
将数组中的内部指针向前移动一位,并返回移位后的单元(没有更多单元时返回 FALSE)
prev
将数组的内部指针倒回一位,并返回移位后的单元(没有更多单元时返回 FALSE)
reset
将数组的内部指针指向第一个单元,并返回移位后的单元(如果是空数组则返回 FALSE)
end
将数组的内部指针指向最后一个单元,并返回移位后的单元(如果是空数组则返回 FALSE)
each(函数已不赞成使用)
返回数组中当前的键/值对并将数组指针向前移动一步
差集
array_diff
计算数组的差集(仅比较值)
array_diff( array $array1, array $array2[, array $...] ) : array
array1
要被对比的数组
array2
和这个数组进行比较
…
更多相比较的数组
返回一个数组,该数组包括了所有在 array1
中但是在任何其它参数数组中没有相同的值的元素。
array_diff_key
计算数组的差集(仅比较键名)
与 array_diff()
类似,不同的是此函数比较的是键名而不是值。
array_diff_key( array $array1, array $array2[, array $...] ) : array
array_diff_assoc
计算数组的差集(比较键名和值)
与 array_diff()
类似,不同的是此函数比较的是键名和值。
array_diff_assoc( array $array1, array $array2[, array $...] ) : array
array_udiff
与 array_diff
类似(仅比较值),不同的是此函数使用回调函数进行值的比较
array_udiff( array $array1, array $array2[, array $...], callable $data_compare_func) : array
array_diff_ukey
与 array_diff_key
类似(仅比较键名),不同的是此函数使用回调函数进行键名的比较
array_diff_ukey( array $array1, array $array2[, array $...], callable $key_compare_func) : array
array_udiff_assoc
与 array_diff_assoc
类似(比较键名和值),不同的是此函数使用自定义函数进行值的比较(键名的比较仍使用内置函数)
array_udiff_assoc( array $array1, array $array2[, array $ ...], callable $data_compare_func) : array
array_diff_uassoc
与 array_diff_assoc
类似(比较键名和值),不同的是此函数使用自定义函数进行键名的比较(值的比较仍使用内置函数)
array_diff_uassoc( array $array1, array $array2[, array $...], callable $key_compare_func) : array
array_udiff_uassoc
与 array_diff_assoc
类似(比较键名和值),不同的是此函数使用自定义函数进行键名和值的比较
array_udiff_uassoc( array $array1, array $array2[, array $ ...], callable $data_compare_func, callable $key_compare_func) : array
以上求差集的函数中,如果使用自定义的回调函数进行键名比较,则会先对数组进行排序,排序时也执行了回调,如果在对 array 2 及后续参数数组进行排序时,回调返回 0 会认为键名相同,而丢弃后面的元素
交集
array_intersect
计算数组的交集(仅比较值)
array_intersect( array $array1, array $array2[, array $ ...] ) : array
array1
要被对比的数组
array2
和这个数组进行比较
…
更多相比较的数组
返回一个数组,该数组包含了所有在 array1
中,同时在所有其它参数数组中都含有相同的值的元素。
array_intersect_key
计算数组的交集(仅比较键名)
与 array_intersect()
类似,不同的是此函数比较的是键名而不是值。
array_intersect_key( array $array1, array $array2[, array $...] ) : array
array_intersect_assoc
计算数组的交集(比较键名和值)
与 array_intersect()
类似,不同的是此函数比较的是键名和值。
array_intersect_assoc( array $array1, array $array2[, array $...] ) : array
array_uintersect
与 array_intersect
类似(仅比较值),不同的是此函数使用回调函数进行值的比较
array_uintersect( array $array1, array $array2[, array $...], callable $data_compare_func) : array
array_intersect_ukey
与 array_intersect_key
类似(仅比较键名),不同的是此函数使用回调函数进行键名的比较
array_intersect_ukey( array $array1, array $array2[, array $...], callable $key_compare_func) : array
array_uintersect_assoc
与 array_intersect_assoc
类似(比较键名和值),不同的是此函数使用自定义函数进行值的比较(键名的比较仍使用内置函数)
array_uintersect_assoc( array $array1, array $array2[, array $ ...], callable $data_compare_func) : array
array_intersect_uassoc
与 array_intersect_assoc
类似(比较键名和值),不同的是此函数使用自定义函数进行键名的比较(值的比较仍使用内置函数)
array_intersect_uassoc( array $array1, array $array2[, array $...], callable $key_compare_func) : array
array_uintersect_uassoc
与 array_intersect_assoc
类似(比较键名和值),不同的是此函数使用自定义函数进行键名和值的比较
array_uintersect_uassoc( array $array1, array $array2[, array $ ...], callable $data_compare_func, callable $key_compare_func) : array
以上求交集的函数中,如果使用自定义的回调函数进行键名比较,则会先对数组进行排序,排序时也执行了回调,如果在对 array 2 及后续参数数组进行排序时,回调返回 0 会认为键名相同,而丢弃后面的元素
合集
array_merge
合并一个或多个数组
array_merge( array $array1[, array $...] ) : array
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回合并后的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。
如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
所有的数字键名从 0 开始重置
参见 加号 “+”、 array_merge 和 array_replace 的区别
array_merge_recursive
递归地合并一个或多个数组
array_merge_recursive( array $array1[, array $...] ) : array
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回合并后的数组。
如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。然而,如果数组具有相同的数字键名,后一个值将不会覆盖原来的值,而是附加到后面。
array_replace
使用传递的数组替换第一个数组的元素
array_replace( array $array1, array $array2[, array $...] ) : array
array1
替换该数组的值。
array2
从此数组中提取替换值。
...
包含要提取元素的更多数组。后面的数组里的值会覆盖前面的值。
使用后面数组元素相同 key
的值替换 array1
数组的值。如果一个键存在于第一个数组同时也存在于第二个数组,它的值将被第二个数组中的值替换。如果一个键存在于第二个数组,但是不存在于第一个数组,则会在第一个数组中创建这个元素。如果一个键仅存在于第一个数组,它将保持不变。如果传递了多个替换数组,它们将被按顺序依次处理,后面的数组将覆盖之前的值。
array_replace()
是非递归的:它将第一个数组的值进行替换而不管第二个数组中是什么类型。
array_replace_recursive
使用传递的数组递归替换第一个数组的元素
array_replace_recursive( array $array1, array $array2[, array $...] ) : array
array_replace_recursive() 是递归的:它将遍历数组并将相同的处理应用到数组的内部值。
如果数组 array1 中的值是标量,它的值将被第二个数组 array2 中的值替换,它可能是一个标量或者数组。如果 array1 和 array2 中的值都是数组,array_replace_recursive() 函数将递归地替换它们各自的值。
生成数组
array_combine
创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
array_combine( array $keys, array $values) : array
keys
将被作为新数组的键。非法的值将会被转换为字符串类型(string)。
values
将被作为数组的值。
返回一个 array
,用来自 keys
数组的值作为键名,来自 values
数组的值作为相应的值。
如果两个数组的单元数不同则抛出一个警告错误(E_WARNING),,并返回 FALSE。
array_fill
创建一个数组,用给定的值来填充
array_fill( int $start_index, int $num, mixed $value) : array
start_index
创建的数组的第一个索引值。
如果
start_index
是负数,那么返回的数组的第一个索引将会是start_index
,而后面索引则从0开始。num
插入元素的数量。必须大于 0。
value
用来填充的值。
返回一个数组,该数组用 value
参数的值填充 num
个条目,键名由 start_index
参数指定的开始。
array_fill_keys
创建一个数组,使用指定的键和值来填充
array_fill_keys( array $keys, mixed $value) : array
keys
使用该数组的值作为键。非法值将被转换为字符串。
value
填充使用的值。
返回填充后的数组,该数组使用 value
参数的值作为值,使用 keys
数组的值作为键来填充一个数组。
range
创建一个数组,使用指定范围的单元来填充
range( mixed $start, mixed $limit[, number $step = 1] ) : array
start
序列的第一个值。
limit
序列的限定值(步进值为正时,单元的最大值小于等于限定值,步进值为负时,数组的最小值大于等于限定值)
step
单元之间的步进值。可以为正,也可以为负。如果未指定,默认为 1。
返回填充后的数组,该数组以 start
为第一个元素,以 step
为步进值,在小于等于(步进值为正)或大于等于(步进值为负) limit
的前提下,尽可能多的填充元素
增删改数组元素
array_unshift
在数组开头插入一个或多个单元
array_unshift( array &$array, mixed $var[, mixed $...] ) : int
array
输入的数组。
var
开头插入的变量。
返回 array
数组新的单元数目
array_push
在数组末尾插入一个或多个单元
array_push( array &$array, mixed $var[, mixed $...] ) : int
array
输入的数组。
var
插入的变量。
返回 array
数组新的单元数目
array_shift
将数组开头的单元移出数组
array_shift( array &$array) : mixed
array
输入的数组
返回移出的值,如果 array
为 空或不是一个数组则返回 NULL。
array_pop
将数组末尾的单元移出数组
array_pop( array &$array) : mixed
array
输入的数组
返回移出的值,如果 array
为 空或不是一个数组则返回 NULL。
array_splice
把数组中的一部分去掉或用其它值取代
array_splice( array &$input, int $offset[, int $length = 0[, mixed $replacement]] ) : array
参数
input
输入的数组。
offset
如果
offset
为正,则从input
数组中该值指定的偏移量开始移除。如果offset
为负,则从input
末尾倒数该值指定的偏移量开始移除。length
如果省略
length
,则移除数组中从offset
到结尾的所有部分。如果指定了length
并且为正值,则移除这么多单元。如果指定了length
并且为负值,则移除从offset
到数组末尾倒数length
为止中间所有的单元。小窍门:当给出了 replacement 时要移除从 offset 到数组末尾所有单元时,用 count($input) 作为 length。replacement
如果给出了
replacement
数组,则被移除的单元被此数组中的单元替代。如果
offset
和length
的组合结果是不会移除任何值,则replacement
数组中的单元将被插入到offset
指定的位置。 注意替换数组中的键名不保留。如果用来替换
replacement
只有一个单元,那么不需要给它加上array()
,除非该单元本身就是一个数组、一个对象或者 NULL。
把 input
数组中由 offset
和 length
指定的单元去掉,如果提供了 replacement
参数,则用其中的单元取代。
返回一个包含有被移除单元的数组。
排序
shuffle
将数组打乱
shuffle ( array &$array ) : bool
成功时返回 TRUE, 或者在失败时返回 FALSE。
sort
对数组排序
sort( array &$array[, int $sort_flags = SORT_REGULAR] ) : bool
array
要排序的数组。
sort_flags
可选的第二个参数 sort_flags 可以用以下值改变排序的行为:
SORT_REGULAR
- 正常比较单元(不改变类型)SORT_NUMERIC
- 单元被作为数字来比较SORT_STRING
- 单元被作为字符串来比较SORT_LOCALE_STRING
- 根据当前的区域(locale)设置来把单元当作字符串比较,可以用 setlocale() 来改变。SORT_NATURAL
- 和 natsort() 类似对每个单元以”自然的顺序”对字符串进行排序。 PHP 5.4.0 中新增的。SORT_FLAG_CASE
- 能够与 SORT_STRING 或 SORT_NATURAL 合并(OR 位运算),不区分大小写排序字符串。
数组单元将被从最低到最高重新排序
成功时返回 TRUE,失败时返回 FALSE
rsort
对数组逆向排序
asort
对数组进行排序并保持索引关系
arsort
对数组进行逆向排序并保持索引关系
ksort
对数组按照键名排序
krsort
对数组按照键名逆向排序
usort
使用用户自定义的比较函数对数组中的值进行排序
uasort
使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
uksort
使用用户自定义的比较函数对数组中的键名进行排序
natsort
用“自然排序”算法对数组排序
natcasesort
用“自然排序”算法对数组进行不区分大小写字母的排序
array_multisort
对多个数组或多维数组进行排序,关联(string)键名保持不变,但数字键名会被重新索引
array_multisort( array &$arr[, mixed $arg = SORT_ASC[, mixed $arg = SORT_REGULAR[, mixed $...]]] ) : bool
排序顺序标志:
- SORT_ASC - 按照上升顺序排序
- SORT_DESC - 按照下降顺序排序
排序类型标志:
- SORT_REGULAR - 将项目按照通常方法比较
- SORT_NUMERIC - 将项目按照数值比较
- SORT_STRING - 将项目按照字符串比较
每个数组之后可以指定一个顺序标志和一个类型标志(仅对该数组有效,没有指定则默认值为 SORT_ASC 和 SORT_REGULAR)
输入数组被当成一个表的列并以行来排序(类似于 SQL 的 ORDER BY
子句,其他列跟随排序列的顺序联动)。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推(类似于 ORDER BY column2 DESC, column2 ASC
)。
成功时返回 TRUE,失败时返回 FALSE
数组和变量互转
list
把数组中的值赋给一些变量
list( mixed $varname[, mixed $...] ) : array
像 array()
一样, list()
不是函数,而是语言结构,用一步操作为多个变量赋值
compact
建立一个数组,以变量名为键名,变量值为数组单元的值
compact( mixed $varname[, mixed $...] ) : array
varname
接受可变的参数数目。每个参数可以是一个包括变量名的字符串或者是一个包含变量名的数组,该数组中还可以包含其它单元内容为变量名的数组, compact() 可以递归处理。
返回输出的数组,包含了添加的所有变量。
extract
把关联数组的键名和值转换为变量
extract( array &$var_array[, int $extract_type = EXTR_OVERWRITE[, string $prefix = NULL]] ) : int
var_array
一个关联数组。此函数会将键名当作变量名,值作为变量的值。 对每个键/值对都会在当前的符号表中建立变量,并受到 extract_type 和 prefix 参数的影响。
必须使用关联数组,数字索引的数组将不会产生结果,除非用了
EXTR_PREFIX_ALL
或者EXTR_PREFIX_INVALID
extract_type
对待非法/数字和冲突的键名的方法将根据 extract_type 参数决定。可以是以下值之一:
EXTR_OVERWRITE
如果有冲突,覆盖已有的变量EXTR_SKIP
如果有冲突,不覆盖已有的变量EXTR_PREFIX_SAME
如果有冲突,在变量名前加上前缀prefix
EXTR_PREFIX_ALL
给所有变量名加上前缀prefix
EXTR_PREFIX_INVALID
仅在非法/数字的变量名前加上前缀prefix
EXTR_IF_EXISTS
仅在当前符号表中已有同名变量时,覆盖它们的值。其它的都不处理。 举个例子,以下情况非常有用:定义一些有效变量,然后从 $_REQUEST 中仅导入这些已定义的变量EXTR_PREFIX_IF_EXISTS
仅在当前符号表中已有同名变量时,建立附加了前缀的变量名,其它的都不处理EXTR_REFS
将变量作为引用提取。这有力地表明了导入的变量仍然引用了 var_array 参数的值。可以单独使用这个标志或者在 extract_type 中用 OR 与其它任何标志结合使用。如果没有指定 extract_type,则被假定为 EXTR_OVERWRITE。
prefix
注意
prefix
仅在extract_type
的值是EXTR_PREFIX_SAME
,EXTR_PREFIX_ALL
,EXTR_PREFIX_INVALID
或EXTR_PREFIX_IF_EXISTS
时需要。 如果附加了前缀后的结果不是合法的变量名,将不会导入到符号表中。前缀和数组键名之间会自动加上一个下划线。
检查每个键名看是否可以作为一个合法的变量名,同时也检查和符号表中已有的变量名的冲突。
返回成功导入到符号表中的变量数目。
执行回调函数
array_reduce
用回调函数迭代地将数组简化为单一的值
array_reduce( array $input, callable $function[, mixed $initial = NULL] ) : mixed
input
输入的数组
function
回调函数
mixed callback( mixed &$result, mixed $value)
initial
如果指定了可选参数
initial
,该参数将被当成是数组中的第一个值来处理,或者如果数组为空的话就作为最终返回值。
array_filter
返回用回调函数过滤后的数组
array_filter( array $array[, callable $callback[, int $flag = 0]] ) : array
array
要循环的数组
callback
使用的回调函数
mixed callback( mixed $value[, mixed $key])
如果没有提供 callback 函数,将删除 input 中所有等值为 FALSE 的条目。
flag
决定 callback 接收的参数形式:
默认为 0:接受键值作为唯一参数
ARRAY_FILTER_USE_KEY(2): 接受键名作为的唯一参数
ARRAY_FILTER_USE_BOTH(1): 同时接受键名和键值
返回过滤后的数组
依次将 array
数组中的每个值传递到 callback
函数。如果 callback
函数返回 TRUE,则 input
数组的当前值(键名保留不变)会被包含在返回的结果数组中。
array_map
返回用回调函数作用每个元素之后的数组
array_map ( callable $callback , array $arr1 [, array $... ] ) : array
callback
对每个数组的每个元素作用的回调函数。
mixed callback( mixed $v1[, mixed $v2...])
arr1
将被回调函数(callback)执行的数组。
array
将被回调函数(callback)执行的数组列表。
返回一个数组,该数组的每个元素都是数组(arr1)里面的每个元素经过回调函数(callback)处理了的。
有几个被执行的数组,回调函数就可以有几个参数,每个参数表示每个数组的一个元素
array_walk
使用回调函数处理数组中的每个元素
array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] ) : bool
array
输入的数组。
callback
典型情况下
callback
接受两个参数。array
参数的值作为第一个,键名作为第二个。mixed callback( mixed &$val, mixed $key [, mixed $userdata...])
userdata
如果提供了可选参数
userdata
,将被作为第三个参数传递给callback
。
成功时返回 TRUE, 或者在失败时返回 FALSE。
本函数必须通过回调函数引用传值来改变原数组的元素
array_map()
不改变原数组,返回原数组的每个元素经过回调函数处理后的新数组
array_walk_recursive
使用回调函数递归地处理数组中的每个元素