1. 将数组中的所有键名修改为大写或小写
- 语法:array array_change_key_case(array $array[, int $case=CASE_LOWER])
- 参数:case可以在这两用两个常量,CASE_UPPER或CASE_LOWER(默认值)
- 返回值:返回一个键全是大写或者全是小写的数组,如果$array不是一个数组,则返回false
2. 将一个数组分割成多个(其中每个数组的单元数目由size决定。最后一个数组单元数目可能会少于size个)
- 语法:array array_chunk(array $array, int $size[, bool $preserve_keys=false])
- 参数:preserve_keys设为true,可以保留数组中原来的键名,如果为false,每个数组将从零开始新的数字索引
- 返回值:到的数组是一个多维数组中的单元,其索引从零开始,每一维包含了size个元素
3. 返回数组中指定的一列(返回input
数组中键值为column_key
的列, 如果指定了可选参数index_key
,那么input
数组中的这一列的值将作为返回数组中对应值的键)--PHP5.5新增
- 语法:array array_column(array $input, mixed $column_key [, mixed $index_key = null])
- 参数:input:需要取出数组列的多维数组。如果提供的是包含一组对象的数组,只有 public 属性会被直接取出。 为了也能取出 private 和 protected 属性,类必须实现 __get() 和 __isset() 魔术方法。column_key:需要返回值的列。它可以是数组列索引、关联数组列的键、也可以是属性名。也可以是null,此时将返回整个数组。index_key:作为返回数组的索引/键的列,也可以是该列的整数索引,或者字符串的键值。
- 返回值:从多维数组中返回单列数组。
4. 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
- 语法:array array_combine(array $keys, array $values)
- 参数:$keys,$values,非法的值将会被转换为字符串类型
- 返回值:返回合并的 array,如果两个数组的单元数不同则返回
FALSE
5. 合并一个或多个数组
- 语法:array array_merge(array $array1[, array $array2...])
- 参数:array1...要合并的数组
- 返回值:返回结果数组
6. 递归地合并一个或多个数组(将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组)
- 语法:array array_merge_recursive(array $array1[, array $array2...])
- 参数:...,数组变量列表,进行递归合并
- 返回值:一个结果数组,其中的值合并自附加的参数。
7. 使用传递的数组替换第一个数组的元素
- 语法:array array_replace(array $array1, array $array2 [, array $...])
- 参数:array1替换该数组的值,array2从此数组中提取替换值,...更多数组,后面数组的值会覆盖前面的值
- 返回值:返回一个数组。如果发生错误,将返回 null
8. 使用传递的数组递归替换第一个数组的元素
- 语法:array array_replace_recursive(array $array1, array $array2 [, array $...])
- 参数:同array_replace
- 返回值:同array_replace
9. 统计数组中值出现的次数
- 语法:array array_count_values(array $array)
- 参数:统计这个数组的值(该值只能为integer或者string类型)
- 返回值:返回一个关联数组,用
array
数组中的值作为键名,该值在数组中出现的次数作为值。
10. 返回数组中所有的值
- 语法:array array_values(array $array)
- 返回值:返回含所有的索引数组
11. 返回数组中部分的或所有的键名
- 语法:array array_keys(array $array [, mixed $search_value=null [, bool $strict=false]])
- 参数:search_value指定这个参数,只有包含这些值的键才会返回。strict判断在搜索的时候是否该使用严格的比较(===)
- 返回值:返回
input
里的所有键
12. 检查数组里是否有指定的键名或索引(isset() 对于数组中为 NULL
的值不会返回 TRUE
,而 array_key_exists() 会)
- 语法:bool array_key_exists(mixed $key, array $array)
- 参数:key要检查的键,array一个数组,包含待检查的键
- 返回值:成功返回true,失败返回false
13. 检查数组中是否存在某个值
- 语法:bool in_array(mixed $needle, array $haystack [, bool $strict = false])
- 参数:needle待搜索的值,如果是字符串,则比较是区分大小写。haystack待搜索的数组。strict值为
TRUE
则 in_array() 函数还会检查needle
的类型是否和haystack
中的相同 - 返回值:如果找到
needle
则返回TRUE
,否则返回FALSE
14. 在数组中搜索给定的值,如果成功则返回首个相应的键名
- 语法:mixed array_search(mixed $needle, array $haystack [, bool $strict=false])
- 参数:needle待搜索的值,如果是字符串,则比较是区分大小写。strict值为
TRUE
则 in_array() 函数还会检查needle
的类型是否和haystack
中的相同 - 返回值:如果找到
needle
则返回TRUE
,否则返回FALSE
15. 移除数组中重复的值
- 语法:array array_unique(array $array[, int $sort_flags=SORT_STRING])
- 参数:
sort_flags
可用于修改排序行为。 SORT_REGULAR
- 按照通常方法比较(不修改类型)。SORT_NUMERIC
- 按照数字形式比较。SORT_STRING
- 按照字符串形式比较。SORT_LOCALE_STRING
- 根据当前的本地化设置,按照字符串比较- 返回值:返回过滤后的数组
16. 计算数组的差集
- 语法:array array_diff(array $array1, array $array2 [, $array $...])
- 参数:array1要被对比的数组,array2和这个数组进行比较
- 返回值:返回一个数组,该数组包括了所有在
array1
中但是不在任何其它参数数组中的值。注意键名保留不变
17. 带索引检查计算数组的差集
- 语法:array array_diff_assoc(array $array1, array $array2 [, array $...])
- 参数:同上array_diff
- 返回值:返回一个数组,该数组包含来自array1的所有值,这些值在任何其他数组中都不存在。
18. 用用户提供的回调函数做索引检查来计算数组的差集
- 语法:array array_diff_uassoc ( array
$array1
, array$array2
[, array$...
], callback$key_compare_func
) - 参数:由用户提供的回调函数检查两个索引的相等性
function key_compare_func($a, $b)
{
if ($a === $b) {
return 0;
}
return ($a > $b)? 1:-1;
}
19. 带索引检查计算数组的差集,用回调函数比较数据
- 语法:array array_udiff_assoc ( array
$array1
, array$array2
[, array$...
], callback$value_compare_func
)
20. 用回调函数比较数据来计算数组的差集
- 语法:array array_udiff ( array
$array1
, array$array2
[, array$...
], callable$value_compare_func
)
21. 带索引检查计算数组的差集,用回调函数比较数据和索引
- 语法:array array_udiff_uassoc ( array
$array1
, array$array2
[, array$...
], callable$value_compare_func
, callable$key_compare_func
)
22. 计算数组的交集((string) $elem1 === (string) $elem2 时被认为是相同的)
- 语法:array array_intersect ( array
$array1
, array$array2
[, array$...
] ) - 返回值:返回一个数组,该数组包含了所有在
array1
中也同时出现在所有其它参数数组中的值
23. 带索引检查计算数组的交集((string) $elem1 === (string) $elem2 时被认为是相同的)
- 语法:array array_intersect_assoc ( array
$array1
, array$array2
[, array$...
] ) -
返回数组,该数组包含了所有在
array1
中也同时出现在所有其它参数数组中的值
24. 用给定的值填充数组
- 语法:array array_fill ( int
$start_index
, int$num
, mixed$value
) - 参数:start_index返回的是数组的第一个索引值,如果是负数,那么返回的数组的第一个索引值会是start_index,后面索引则从0开始。num插入元素的数量,必需大于或等于0。value用来填充的值。
- 返回值:返回填充后的数组
25. 使用指定的键和值填充数组
- 语法:array array_fill_keys ( array
$keys
, mixed$value
) - 参数:keys使用该数组的值作为键。非法值将被转换为字符串。
- 返回值:返回填充后的数组
26. 用回调函数过滤数组中的单元
- 语法:array array_filter ( array
$array
[, callable$callback
[, int$flag
= 0 ]] ) - 参数:callback使用的回调函数,如果没有提供callback函数,将删除array中所有等值为false的条目。flag
ARRAY_FILTER_USE_KEY
-callback
接受键名作为的唯一参数ARRAY_FILTER_USE_BOTH
-callback
同时接受键名和键值- 返回值:返回过滤后的数组
27. 交换数组中的键和值(如果同一个值出现多次,则最后一个键名将作为它的值,其它键会被丢弃。)
- 语法:array array_flip(array $array)
- 返回值:成功时返回交换后的数组,如果失败返回null
28. 为设置的每个元素应用回调函数
- 语法:array array_map(callback $callback, array $array1 [, array $...])
- 参数:callback回调函数,应用到每个数组里的每个元素
- 返回值:返回数组,包含
callback
函数处理之后array1
的所有元素
29. 使用用户自定义函数对数组中的每个元素做回调处理
- 语法:array_walk(array $array, callback $callback [, mixed $userdata=null])
- 参数:callback接收两个参数,array参数的值作为第一个,键名作为第二个。