企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
**数组能够在单独的变量名中存储一个或多个值**。 ## 实例 数组在单个变量中存储多个值: ~~~ <?php $cars=array("Volvo","BMW","SAAB"); echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . "."; ?> ~~~ ## 什么是数组? 数组是特殊的变量,它可以同时保存一个以上的值。 如果您有一个项目列表(例如汽车品牌列表),在单个变量中存储这些品牌名称是这样的: ~~~ $cars1="Volvo"; $cars2="BMW"; $cars3="SAAB"; ~~~ 不过,假如您希望对变量进行遍历并找出特定的那个值?或者如果您需要存储 300 个汽车品牌,而不是 3 个呢? 解决方法是创建数组! 数组能够在单一变量名中存储许多值,并且您能够通过引用下标号来访问某个值。 ## 在 PHP 中创建数组 在 PHP 中, array() 函数用于创建数组: `array();` 在 PHP 中,有三种数组类型: * 索引数组 - 带有数字索引的数组 * 关联数组 - 带有指定键的数组 * 多维数组 - 包含一个或多个数组的数组 ## PHP 索引数组 有两种创建索引数组的方法: 索引是自动分配的(索引从 0 开始): `$cars=array("Volvo","BMW","SAAB");` 或者也可以手动分配索引: ~~~ $cars[0]="Volvo"; $cars[1]="BMW"; $cars[2]="SAAB"; ~~~ 下面的例子创建名为 $cars 的索引数组,为其分配三个元素,然后输出包含数组值的一段文本: ~~~ <?php $cars=array("Volvo","BMW","SAAB"); echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . "."; ?> ~~~ ### 获得数组的长度 - count() 函数 count() 函数用于返回数组的长度(元素数): ~~~ <?php $cars=array("Volvo","BMW","SAAB"); echo count($cars); ?> ~~~ ### 遍历索引数组 如需遍历并输出索引数组的所有值,您可以使用 for 循环,就像这样: ~~~ <?php $cars=array("Volvo","BMW","SAAB"); $arrlength=count($cars); for($x=0;$x<$arrlength;$x++) { echo $cars[$x]; echo "<br>"; } ?> ~~~ ## PHP 关联数组 关联数组是使用您分配给数组的指定键的数组。 有两种创建关联数组的方法: ~~~ $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); ~~~ 或者: ~~~ $age['Peter']="35"; $age['Ben']="37"; $age['Joe']="43"; ~~~ 随后可以在脚本中使用指定键: ~~~ <?php $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); echo "Peter is " . $age['Peter'] . " years old."; ?> ~~~ ### 遍历关联数组 如需遍历并输出关联数组的所有值,您可以使用 foreach 循环,就像这样: ~~~ <?php $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; } ?> ~~~ ## 多维数组 我们将在 PHP 高级教程中讲解多维数组。 ## 完整的 PHP 数组参考手册 如需完整的数组函数参考手册,请访问我们的 [PHP 数组参考手册](http://www.w3school.com.cn/php/php_ref_array.asp)。 该参考手册包含每个函数的简要描述、使用示例。 **数组中的元素能够以字母或数字顺序进行升序或降序排序。** ### PHP - 数组的排序函数 在本节中,我们将学习如下 PHP 数组排序函数: * sort() - 以升序对数组排序 * rsort() - 以降序对数组排序 * asort() - 根据值,以升序对关联数组进行排序 * ksort() - 根据键,以升序对关联数组进行排序 * arsort() - 根据值,以降序对关联数组进行排序 * krsort() - 根据键,以降序对关联数组进行排序 #### 对数组进行升序排序 - sort() 下面的例子按照字母升序对数组 $cars 中的元素进行排序: ~~~ <?php $cars=array("Volvo","BMW","SAAB"); sort($cars); ?> ~~~ ![](https://box.kancloud.cn/e90d0b6af58ee4d12bc0843213358dcd_149x105.png) 下面的例子按照数字升序对数组 $numbers 中的元素进行排序: ~~~ <?php $numbers=array(3,5,1,22,11); sort($numbers); ?> ~~~ ![](https://box.kancloud.cn/beff0c420b8bf3d4989c8ec1b69f5eda_290x188.png) #### 对数组进行降序排序 - rsort() 下面的例子按照字母降序对数组 $cars 中的元素进行排序: ~~~ <?php $cars=array("Volvo","BMW","SAAB"); rsort($cars); ?> ~~~ ![](https://box.kancloud.cn/682ebec0c5208f021dace1245d8fef55_178x112.png) 下面的例子按照数字降序对数组 $numbers 中的元素进行排序: ~~~ <?php $numbers=array(3,5,1,22,11); rsort($numbers); ?> ~~~ ![](https://box.kancloud.cn/46a52dea50637d1f55119855e1a4ee7e_205x157.png) #### 根据值对数组进行升序排序 - asort() 下面的例子根据值对关联数组进行升序排序: ~~~ <?php $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); asort($age); ?> ~~~ ![](https://box.kancloud.cn/7ac29a4328a0929df1592c202f5079bc_237x130.png) #### 根据键对数组进行升序排序 - ksort() 下面的例子根据键对关联数组进行升序排序: ~~~ <?php $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); ksort($age); ?> ~~~ ![](https://box.kancloud.cn/23e2d70f34437cb808c226ab73dd2812_229x131.png) #### 根据值对数组进行降序排序 - arsort() 下面的例子根据值对关联数组进行降序排序: ~~~ <?php $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); arsort($age); ?> ~~~ ![](https://box.kancloud.cn/ded4d4fd77d7fafcab3dcb25275df847_268x148.png) #### 根据键对数组进行降序排序 - krsort() 下面的例子根据键对关联数组进行降序排序: ~~~ <?php $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); krsort($age); ?> ~~~ ![](https://box.kancloud.cn/f7ef54492cfdf8caab3ac5b56e17239f_234x132.png)