<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Array 数组函数</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PHP 手册" HREF="index.html"><LINK REL="UP" TITLE="函数参考" HREF="funcref.html"><LINK REL="PREVIOUS" TITLE="rename_function" HREF="function.rename-function.html"><LINK REL="NEXT" TITLE="array_change_key_case" HREF="function.array-change-key-case.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="reference" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >PHP 手册</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.rename-function.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.array-change-key-case.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="reference" ><A NAME="ref.array" ></A ><DIV CLASS="TITLEPAGE" ><H1 CLASS="title" >V. Array 数组函数</H1 ><DIV CLASS="PARTINTRO" ><A NAME="AEN10377" ></A ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="array.intro" >简介</A ></H1 ><P > 本类函数允许用多种方法来操作数组和与之交互。数组的本质是储存,管理和操作一组变量。 </P ><P > PHP 支持一维和多维数组,可以是用户创建或由另一个函数创建。有一些特定的数据库处理函数可以从数据库查询中生成数组,还有一些函数返回数组。 </P ><P > 参见手册中的<A HREF="language.types.array.html" >数组</A >一节关于 PHP 是怎样实现和使用数组的详细解释。参见<A HREF="language.operators.array.html" >数组运算符</A >一节关于怎样操作数组的其它方法。 </P ></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="array.requirements" >需求</A ></H1 ><P >要编译本扩展模块无需外部库文件。</P ></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="array.installation" >安装</A ></H1 ><P >本扩展模块作为 PHP 内核的一部分,无需安装即可使用。</P ></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="array.configuration" >运行时配置</A ></H1 ><P >本扩展模块在 <TT CLASS="filename" >php.ini</TT > 中未定义任何配置选项。</P ></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="array.resources" >资源类型</A ></H1 ><P >本扩展模块未定义任何资源类型。</P ></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="array.constants" >预定义常量</A ></H1 ><P >以下常量作为 PHP 核心的一部分一直有效。</P ><P > <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><TT CLASS="constant" ><B >CASE_LOWER</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > <TT CLASS="constant" ><B >CASE_LOWER</B ></TT > 用在 <A HREF="function.array-change-key-case.html" ><B CLASS="function" >array_change_key_case()</B ></A > 中将数组的键名转换成小写字母。这也是 <A HREF="function.array-change-key-case.html" ><B CLASS="function" >array_change_key_case()</B ></A > 的默认值。 </P ></DD ><DT ><TT CLASS="constant" ><B >CASE_UPPER</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > <TT CLASS="constant" ><B >CASE_UPPER</B ></TT > 用在 <A HREF="function.array-change-key-case.html" ><B CLASS="function" >array_change_key_case()</B ></A > 中将数组的键名转换成大写字母。 </P ></DD ></DL ></DIV > </P ><P > 排序顺序标识: <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><TT CLASS="constant" ><B >SORT_ASC</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > <TT CLASS="constant" ><B >SORT_ASC</B ></TT > 用在 <A HREF="function.array-multisort.html" ><B CLASS="function" >array_multisort()</B ></A > 函数中,使其升序排列。 </P ></DD ><DT ><TT CLASS="constant" ><B >SORT_DESC</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > <TT CLASS="constant" ><B >SORT_DESC</B ></TT > 用在 <A HREF="function.array-multisort.html" ><B CLASS="function" >array_multisort()</B ></A > 函数中,使其降序排列。 </P ></DD ></DL ></DIV > </P ><P > 排序类型标识:用于各种排序函数 <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><TT CLASS="constant" ><B >SORT_REGULAR</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > <TT CLASS="constant" ><B >SORT_REGULAR</B ></TT > 用于对对象进行通常比较。 </P ></DD ><DT ><TT CLASS="constant" ><B >SORT_NUMERIC</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > <TT CLASS="constant" ><B >SORT_NUMERIC</B ></TT > 用于对对象进行数值比较。 </P ></DD ><DT ><TT CLASS="constant" ><B >SORT_STRING</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > <TT CLASS="constant" ><B >SORT_STRING</B ></TT > 用于对对象进行字符串比较。 </P ></DD ><DT ><TT CLASS="constant" ><B >SORT_LOCALE_STRING</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > <TT CLASS="constant" ><B >SORT_LOCALE_STRING</B ></TT > 基于当前区域来对对象进行字符串比较。PHP 4.4.0 和 5.0.2 新加。 </P ></DD ></DL ></DIV > </P ><P ></P ><DIV CLASS="variablelist" ><DL ><DT ><TT CLASS="constant" ><B >COUNT_NORMAL</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >COUNT_RECURSIVE</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >EXTR_OVERWRITE</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >EXTR_SKIP</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >EXTR_PREFIX_SAME</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >EXTR_PREFIX_ALL</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >EXTR_PREFIX_INVALID</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >EXTR_PREFIX_IF_EXISTS</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >EXTR_IF_EXISTS</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ><DT ><TT CLASS="constant" ><B >EXTR_REFS</B ></TT > (<A HREF="language.types.integer.html" ><B CLASS="type" >integer</B ></A >)</DT ><DD ><P > </P ></DD ></DL ></DIV ></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="array.seealso" >参见</A ></H1 ><P > 参见 <A HREF="function.is-array.html" ><B CLASS="function" >is_array()</B ></A >,<A HREF="function.explode.html" ><B CLASS="function" >explode()</B ></A >,<A HREF="function.implode.html" ><B CLASS="function" >implode()</B ></A >,<A HREF="function.split.html" ><B CLASS="function" >split()</B ></A >,<A HREF="function.preg-split.html" ><B CLASS="function" >preg_split()</B ></A > 和 <A HREF="function.unset.html" ><B CLASS="function" >unset()</B ></A >。 </P ><P > 【译者注】本章中出现的“关联数组”或“结合数组”指的是键名为字符串的数组,“索引”和“键名”指的是同一样东西。“索引”多指数组的数字形式的下标。 </P ></DIV ></DIV ><DIV CLASS="TOC" ><DL ><DT ><B >目录</B ></DT ><DT ><A HREF="function.array-change-key-case.html" >array_change_key_case</A > -- 返回字符串键名全为小写或大写的数组</DT ><DT ><A HREF="function.array-chunk.html" >array_chunk</A > -- 将一个数组分割成多个</DT ><DT ><A HREF="function.array-combine.html" >array_combine</A > -- 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值 </DT ><DT ><A HREF="function.array-count-values.html" >array_count_values</A > -- 统计数组中所有的值出现的次数</DT ><DT ><A HREF="function.array-diff-assoc.html" >array_diff_assoc</A > -- 带索引检查计算数组的差集</DT ><DT ><A HREF="function.array-diff-key.html" >array_diff_key</A > -- 使用键名比较计算数组的差集</DT ><DT ><A HREF="function.array-diff-uassoc.html" >array_diff_uassoc</A > -- 用用户提供的回调函数做索引检查来计算数组的差集</DT ><DT ><A HREF="function.array-diff-ukey.html" >array_diff_ukey</A > -- 用回调函数对键名比较计算数组的差集</DT ><DT ><A HREF="function.array-diff.html" >array_diff</A > -- 计算数组的差集</DT ><DT ><A HREF="function.array-fill-keys.html" >array_fill_keys</A > -- Fill an array with values, specifying keys</DT ><DT ><A HREF="function.array-fill.html" >array_fill</A > -- 用给定的值填充数组</DT ><DT ><A HREF="function.array-filter.html" >array_filter</A > -- 用回调函数过滤数组中的单元 </DT ><DT ><A HREF="function.array-flip.html" >array_flip</A > -- 交换数组中的键和值</DT ><DT ><A HREF="function.array-intersect-assoc.html" >array_intersect_assoc</A > -- 带索引检查计算数组的交集</DT ><DT ><A HREF="function.array-intersect-key.html" >array_intersect_key</A > -- 使用键名比较计算数组的交集</DT ><DT ><A HREF="function.array-intersect-uassoc.html" >array_intersect_uassoc</A > -- 带索引检查计算数组的交集,用回调函数比较索引</DT ><DT ><A HREF="function.array-intersect-ukey.html" >array_intersect_ukey</A > -- 用回调函数比较键名来计算数组的交集</DT ><DT ><A HREF="function.array-intersect.html" >array_intersect</A > -- 计算数组的交集</DT ><DT ><A HREF="function.array-key-exists.html" >array_key_exists</A > -- 检查给定的键名或索引是否存在于数组中</DT ><DT ><A HREF="function.array-keys.html" >array_keys</A > -- 返回数组中所有的键名</DT ><DT ><A HREF="function.array-map.html" >array_map</A > -- 将回调函数作用到给定数组的单元上 </DT ><DT ><A HREF="function.array-merge-recursive.html" >array_merge_recursive</A > -- 递归地合并一个或多个数组</DT ><DT ><A HREF="function.array-merge.html" >array_merge</A > -- 合并一个或多个数组</DT ><DT ><A HREF="function.array-multisort.html" >array_multisort</A > -- 对多个数组或多维数组进行排序</DT ><DT ><A HREF="function.array-pad.html" >array_pad</A > -- 用值将数组填补到指定长度 </DT ><DT ><A HREF="function.array-pop.html" >array_pop</A > -- 将数组最后一个单元弹出(出栈)</DT ><DT ><A HREF="function.array-product.html" >array_product</A > -- 计算数组中所有值的乘积</DT ><DT ><A HREF="function.array-push.html" >array_push</A > -- 将一个或多个单元压入数组的末尾(入栈) </DT ><DT ><A HREF="function.array-rand.html" >array_rand</A > -- 从数组中随机取出一个或多个单元 </DT ><DT ><A HREF="function.array-reduce.html" >array_reduce</A > -- 用回调函数迭代地将数组简化为单一的值</DT ><DT ><A HREF="function.array-reverse.html" >array_reverse</A > -- 返回一个单元顺序相反的数组 </DT ><DT ><A HREF="function.array-search.html" >array_search</A > -- 在数组中搜索给定的值,如果成功则返回相应的键名 </DT ><DT ><A HREF="function.array-shift.html" >array_shift</A > -- 将数组开头的单元移出数组 </DT ><DT ><A HREF="function.array-slice.html" >array_slice</A > -- 从数组中取出一段</DT ><DT ><A HREF="function.array-splice.html" >array_splice</A > -- 把数组中的一部分去掉并用其它值取代 </DT ><DT ><A HREF="function.array-sum.html" >array_sum</A > -- 计算数组中所有值的和 </DT ><DT ><A HREF="function.array-udiff-assoc.html" >array_udiff_assoc</A > -- 带索引检查计算数组的差集,用回调函数比较数据</DT ><DT ><A HREF="function.array-udiff-uassoc.html" >array_udiff_uassoc</A > -- 带索引检查计算数组的差集,用回调函数比较数据和索引</DT ><DT ><A HREF="function.array-udiff.html" >array_udiff</A > -- 用回调函数比较数据来计算数组的差集</DT ><DT ><A HREF="function.array-uintersect-assoc.html" >array_uintersect_assoc</A > -- 带索引检查计算数组的交集,用回调函数比较数据</DT ><DT ><A HREF="function.array-uintersect-uassoc.html" >array_uintersect_uassoc</A > -- 带索引检查计算数组的交集,用回调函数比较数据和索引</DT ><DT ><A HREF="function.array-uintersect.html" >array_uintersect</A > -- 计算数组的交集,用回调函数比较数据</DT ><DT ><A HREF="function.array-unique.html" >array_unique</A > -- 移除数组中重复的值</DT ><DT ><A HREF="function.array-unshift.html" >array_unshift</A > -- 在数组开头插入一个或多个单元 </DT ><DT ><A HREF="function.array-values.html" >array_values</A > -- 返回数组中所有的值</DT ><DT ><A HREF="function.array-walk-recursive.html" >array_walk_recursive</A > -- 对数组中的每个成员递归地应用用户函数</DT ><DT ><A HREF="function.array-walk.html" >array_walk</A > -- 对数组中的每个成员应用用户函数</DT ><DT ><A HREF="function.array.html" >array</A > -- 新建一个数组 </DT ><DT ><A HREF="function.arsort.html" >arsort</A > -- 对数组进行逆向排序并保持索引关系 </DT ><DT ><A HREF="function.asort.html" >asort</A > -- 对数组进行排序并保持索引关系</DT ><DT ><A HREF="function.compact.html" >compact</A > -- 建立一个数组,包括变量名和它们的值 </DT ><DT ><A HREF="function.count.html" >count</A > -- 计算数组中的单元数目或对象中的属性个数</DT ><DT ><A HREF="function.current.html" >current</A > -- 返回数组中的当前单元</DT ><DT ><A HREF="function.each.html" >each</A > -- 返回数组中当前的键/值对并将数组指针向前移动一步 </DT ><DT ><A HREF="function.end.html" >end</A > -- 将数组的内部指针指向最后一个单元 </DT ><DT ><A HREF="function.extract.html" >extract</A > -- 从数组中将变量导入到当前的符号表</DT ><DT ><A HREF="function.in-array.html" >in_array</A > -- 检查数组中是否存在某个值</DT ><DT ><A HREF="function.key.html" >key</A > -- 从关联数组中取得键名</DT ><DT ><A HREF="function.krsort.html" >krsort</A > -- 对数组按照键名逆向排序</DT ><DT ><A HREF="function.ksort.html" >ksort</A > -- 对数组按照键名排序</DT ><DT ><A HREF="function.list.html" >list</A > -- 把数组中的值赋给一些变量 </DT ><DT ><A HREF="function.natcasesort.html" >natcasesort</A > -- 用“自然排序”算法对数组进行不区分大小写字母的排序 </DT ><DT ><A HREF="function.natsort.html" >natsort</A > -- 用“自然排序”算法对数组排序 </DT ><DT ><A HREF="function.next.html" >next</A > -- 将数组中的内部指针向前移动一位 </DT ><DT ><A HREF="function.pos.html" >pos</A > -- <A HREF="function.current.html" ><B CLASS="function" >current()</B ></A > 的别名</DT ><DT ><A HREF="function.prev.html" >prev</A > -- 将数组的内部指针倒回一位</DT ><DT ><A HREF="function.range.html" >range</A > -- 建立一个包含指定范围单元的数组 </DT ><DT ><A HREF="function.reset.html" >reset</A > -- 将数组的内部指针指向第一个单元</DT ><DT ><A HREF="function.rsort.html" >rsort</A > -- 对数组逆向排序</DT ><DT ><A HREF="function.shuffle.html" >shuffle</A > -- 将数组打乱</DT ><DT ><A HREF="function.sizeof.html" >sizeof</A > -- <A HREF="function.count.html" ><B CLASS="function" >count()</B ></A > 的别名 </DT ><DT ><A HREF="function.sort.html" >sort</A > -- 对数组排序</DT ><DT ><A HREF="function.uasort.html" >uasort</A > -- 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联 </DT ><DT ><A HREF="function.uksort.html" >uksort</A > -- 使用用户自定义的比较函数对数组中的键名进行排序 </DT ><DT ><A HREF="function.usort.html" >usort</A > -- 使用用户自定义的比较函数对数组中的值进行排序 </DT ></DL ></DIV ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.rename-function.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >起始页</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.array-change-key-case.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >rename_function</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="funcref.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >array_change_key_case</TD ></TR ></TABLE ></DIV ></BODY ></HTML >