V. 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  --  使用用户自定义的比较函数对数组中的值进行排序