数组函数库

来源:常见问题 2014-03-03

简介

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

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

参见手册中的数组一节关于 PHP 是怎样实现和使用数组的详细解释。

需求

无需外部库文件就可以加入本扩展模块的支持。

安装

这些函数作为 PHP 核心的一部分,无需被安装即可使用。

运行时配置

该扩展模块未定义任何设置指令。

资源类型

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

预定义常量

这里列出的所有常量将作为 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 用于对对象进行字符串比较。

  • 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_uassoc --  Computes the difference of arrays with additional index check which is performed by a user supplied callback function

  • array_diff -- 计算数组的差集

  • array_fill -- 用给定的值填充数组

  • array_filter --  用回调函数过滤数组中的单元

  • array_flip -- 交换数组中的键和值

  • array_intersect_assoc -- 带索引检查计算数组的交集

  • array_intersect -- 计算数组的交集

  • array_key_exists -- 检查给定的键名或索引是否存在于数组中

  • array_keys -- 返回数组中所有的键名

  • array_map --  将回调函数作用到给定数组的单元上

  • array_merge_recursive -- 递归地合并两个或多个数组

  • array_merge -- 合并两个或多个数组

  • array_multisort -- 对多个数组或多维数组进行排序

  • array_pad --  用值将数组填补到指定长度

  • array_pop -- 将数组最后一个单元弹出(出栈)

  • array_push --  将一个或多个单元压入数组的末尾(入栈)

  • array_rand --  从数组中随机取出一个或多个单元

  • array_reduce --  用回调函数迭代地将数组简化为单一的值

  • array_reverse --  返回一个单元顺序相反的数组

  • array_search --   在数组中搜索给定的值,如果成功则返回相应的键名

  • array_shift --  将数组开头的单元移出数组

  • array_slice -- 从数组中取出一段

  • array_splice --  把数组中的一部分去掉并用其它值取代

  • array_sum --  计算数组中所有值的和

  • array_udiff_assoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function.

  • array_udiff_uassoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function. The index check is done by a callback function also

  • array_udiff -- Computes the difference of arrays by using a callback function for data comparison.

  • array_unique -- 移除数组中重复的值

  • array_unshift --  在数组开头插入一个或多个单元

  • array_values -- 返回数组中所有的值

  • array_walk_recursive --   Apply a user function recursively to every member of an array

  • array_walk --  对数组中的每个成员应用用户函数

  • array --  新建一个数组

  • arsort --  对数组进行逆向排序并保持索引关系

  • asort -- 对数组进行排序并保持索引关系

  • compact --  建立一个数组,包括变量名和它们的值

  • count -- 统计变量中的单元数目

  • current -- 返回数组中的当前单元

  • each --  返回数组中当前的键/值对并将数组指针向前移动一步

  • end --  将数组的内部指针指向最后一个单元

  • extract --  从数组中将变量导入到当前的符号表

  • in_array -- 检查数组中是否存在某个值

  • key -- 从结合数组中取得键名

  • krsort -- 对数组按照键名逆向排序

  • ksort -- 对数组按照键名排序

  • list --  把数组中的值赋给一些变量

  • natcasesort --   用“自然排序”算法对数组进行不区分大小写字母的排序

  • natsort --  用“自然排序”算法对数组排序

  • next --  将数组中的内部指针向前移动一位

  • pos -- 得到数组当前的单元

  • prev -- 将数组的内部指针倒回一位

  • range --  建立一个包含指定范围单元的数组

  • reset --  将数组的内部指针指向第一个单元

  • rsort -- 对数组逆向排序

  • shuffle -- 将数组打乱

  • sizeof -- count() 的别名

  • sort -- 对数组排序

  • uasort --  使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

  • uksort --  使用用户自定义的比较函数对数组中的键名进行排序

  • usort --  使用用户自定义的比较函数对数组中的值进行排序