Array 数组函数

简介

本类函数允许用多种方法来操作数组和与之交互。数组的本质是储存,管理和操作一组变量。

PHP 支持一维和多维数组,可以是用户创建或由另一个函数创建。有一些特定的数据库处理函数可以从数据库查询中生成数组,还有一些函数返回数组。

参见手册中的数组一节关于 PHP 是怎样实现和使用数组的详细解释。参见数组运算符一节关于怎样操作数组的其它方法。

需求

要编译本扩展模块无需外部库文件。

安装

本扩展模块作为 PHP 内核的一部分,无需安装即可使用。

运行时配置

本扩展模块在 php.ini 中未定义任何配置选项。

资源类型

本扩展模块未定义任何资源类型。

预定义常量

以下常量作为 PHP 核心的一部分一直有效。

CASE_LOWER (integer)
CASE_LOWER 用在 array_change_key_case() 中将数组的键名转换成小写字母。这也是 array_change_key_case() 的默认值。
CASE_UPPER (integer)
CASE_UPPER 用在 array_change_key_case() 中将数组的键名转换成大写字母。

排序顺序标识:

SORT_ASC (integer)
SORT_ASC 用在 array_multisort() 函数中,使其升序排列。
SORT_DESC (integer)
SORT_DESC 用在 array_multisort() 函数中,使其降序排列。

排序类型标识:用于各种排序函数

SORT_REGULAR (integer)
SORT_REGULAR 用于对对象进行通常比较。
SORT_NUMERIC (integer)
SORT_NUMERIC 用于对对象进行数值比较。
SORT_STRING (integer)
SORT_STRING 用于对对象进行字符串比较。
SORT_LOCALE_STRING (integer)
SORT_LOCALE_STRING 基于当前区域来对对象进行字符串比较。PHP 4.4.0 和 5.0.2 新加。
COUNT_NORMAL (integer)
COUNT_RECURSIVE (integer)
EXTR_OVERWRITE (integer)
EXTR_SKIP (integer)
EXTR_PREFIX_SAME (integer)
EXTR_PREFIX_ALL (integer)
EXTR_PREFIX_INVALID (integer)
EXTR_PREFIX_IF_EXISTS (integer)
EXTR_IF_EXISTS (integer)
EXTR_REFS (integer)

参见

参见 is_array()explode()implode()split()preg_split()unset()

【译者注】本章中出现的“关联数组”或“结合数组”指的是键名为字符串的数组,“索引”和“键名”指的是同一样东西。“索引”多指数组的数字形式的下标。

目录

array_change_key_case - 返回字符串键名全为小写或大写的数组
array_chunk - 将一个数组分割成多个
array_combine - 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
array_count_values - 统计数组中所有的值出现的次数
array_diff_assoc - 带索引检查计算数组的差集
array_diff_key - 使用键名比较计算数组的差集
array_diff_uassoc - 用用户提供的回调函数做索引检查来计算数组的差集
array_diff_ukey - 用回调函数对键名比较计算数组的差集
array_diff - 计算数组的差集
array_fill - 用给定的值填充数组
array_filter - 用回调函数过滤数组中的单元
array_flip - 交换数组中的键和值
array_intersect_assoc - 带索引检查计算数组的交集
array_intersect_key - 使用键名比较计算数组的交集
array_intersect_uassoc - 带索引检查计算数组的交集,用回调函数比较索引
array_intersect_ukey - 用回调函数比较键名来计算数组的交集
array_intersect - 计算数组的交集
array_key_exists - 检查给定的键名或索引是否存在于数组中
array_keys - 返回数组中所有的键名
array_map - 将回调函数作用到给定数组的单元上
array_merge_recursive - 递归地合并一个或多个数组
array_merge - 合并一个或多个数组
array_multisort - 对多个数组或多维数组进行排序
array_pad - 用值将数组填补到指定长度
array_pop - 将数组最后一个单元弹出(出栈)
array_product - 计算数组中所有值的乘积
array_push - 将一个或多个单元压入数组的末尾(入栈)
array_rand - 从数组中随机取出一个或多个单元
array_reduce - 用回调函数迭代地将数组简化为单一的值
array_reverse - 返回一个单元顺序相反的数组
array_search - 在数组中搜索给定的值,如果成功则返回相应的键名
array_shift - 将数组开头的单元移出数组
array_slice - 从数组中取出一段
array_splice - 把数组中的一部分去掉并用其它值取代
array_sum - 计算数组中所有值的和
array_udiff_assoc - 带索引检查计算数组的差集,用回调函数比较数据
array_udiff_uassoc - 带索引检查计算数组的差集,用回调函数比较数据和索引
array_udiff - 用回调函数比较数据来计算数组的差集
array_uintersect_assoc - 带索引检查计算数组的交集,用回调函数比较数据
array_uintersect_uassoc - 带索引检查计算数组的交集,用回调函数比较数据和索引
array_uintersect - 计算数组的交集,用回调函数比较数据
array_unique - 移除数组中重复的值
array_unshift - 在数组开头插入一个或多个单元
array_values - 返回数组中所有的值
array_walk_recursive - 对数组中的每个成员递归地应用用户函数
array_walk - 对数组中的每个成员应用用户函数
array - 新建一个数组
arsort - 对数组进行逆向排序并保持索引关系
asort - 对数组进行排序并保持索引关系
compact - 建立一个数组,包括变量名和它们的值
count - 计算数组中的单元数目或对象中的属性个数
current - 返回数组中的当前单元
each - 返回数组中当前的键/值对并将数组指针向前移动一步
end - 将数组的内部指针指向最后一个单元
extract - 从数组中将变量导入到当前的符号表
in_array - 检查数组中是否存在某个值
key - 从关联数组中取得键名
krsort - 对数组按照键名逆向排序
ksort - 对数组按照键名排序
list - 把数组中的值赋给一些变量
natcasesort - 用“自然排序”算法对数组进行不区分大小写字母的排序
natsort - 用“自然排序”算法对数组排序
next - 将数组中的内部指针向前移动一位
pos - current 的别名
prev - 将数组的内部指针倒回一位
range - 建立一个包含指定范围单元的数组
reset - 将数组的内部指针指向第一个单元
rsort - 对数组逆向排序
shuffle - 将数组打乱
sizeof - count 的别名
sort - 对数组排序
uasort - 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
uksort - 使用用户自定义的比较函数对数组中的键名进行排序
usort - 使用用户自定义的比较函数对数组中的值进行排序