PHP 索引数组和关联数组
时间:2021-12-08 作者:匿名
PHP 索引数组
一个索引数组是一个简单的阵列,其中数据元素存储针对数字索引。所有数组元素都由一个索引表示,该索引是从0第一个数组元素开始的数值。
创建索引数组
在 PHP 中有两种不同的创建索引数组的方法,它们是:
<?php /* 第一种方法 */ $lamborghinis = array("花", "草", "树木"); ?>
<?php /* 第二种方法 */ $suzuki[0] = "人行道"; $suzuki[1] = "机动车道"; $suzuki[2] = "桥梁"; $suzuki[3] = "盲道"; ?>
无论我们如何初始化数组,我们都可以按如下方式访问数组,
<?php /* 访问数组 */ echo "第二个数组..."; echo $suzuki[0], "\n"; echo $suzuki[3], "\n"; echo $suzuki[2], "\n"; echo "第一个数组..."; echo $lamborghinis[1], "\n"; echo $lamborghinis[0], "\n"; echo $lamborghinis[2], "\n"; ?>
遍历 PHP 索引数组
使用for循环
<?php $lamborghinis = array("花", "草", "树木"); // 获取数据数量 $size = count($lamborghinis); for($i = 0; $i < $size; $i++) { echo $lamborghinis[$i], "\n"; } ?>
使用foreach循环
<?php $lamborghinis = array("花", "草", "树木"); foreach($lamborghinis as $lambo) { echo $lambo. "\n"; } ?>
PHP 关联数组
一个关联数组类似于一个索引数组,但不是用数字索引顺序地存储数据,每个值可与用户设计的键被分配string类型。
创建关联数组
<?php /* 第一种方法 */ $lamborghinis = array("suv"=>"Urus", "sports"=>"Huracan", "coupe"=>"Aventador"); ?>
<?php /* 第二种方法 */ $suzuki["hatch"] = "Swift"; $suzuki["utility"] = "Ertiga"; $suzuki["suv"] = "Vitara"; ?>
无论我们如何初始化数组,我们都可以按如下方式访问数组:
<?php echo $suzuki["hatch"], "\n"; echo $suzuki["utility"], "\n"; echo $suzuki["suv"], "\n"; echo $lamborghinis["suv"], "\n"; echo $lamborghinis["sports"], "\n"; echo $lamborghinis["coupe"], "\n"; ?>
遍历 PHP 关联数组
使用for循环
由于关联数组中的索引不是数字,也不是顺序,因此为了找到索引值或键(因为关联数组中保存的数据是键值形式),我们可以使用该函数array_keys()获取一个数组关联数组中使用的键。
<?php $lamborghinis = array("suv"=>"Urus", "sports"=>"Huracan", "coupe"=>"Aventador"); // 获取条目数 $size = count($lamborghinis); // 获取键值到一个数组中 $keys = array_keys($lamborghinis); // 遍历数组 for($i = 0; $i < $size; $i++) { echo $lamborghinis[$keys[$i]] ." is a/an ". $keys[$i] ." car \n"; } ?>
使用foreach循环
foreach如果您必须遍历整个数组,使用遍历关联数组是一种更好的方法,因为我们不必费心计算数组的大小来循环数组。
<?php $lamborghinis = array("suv"=>"Urus", "sports"=>"Huracan", "coupe"=>"Aventador"); // 遍历数组 foreach($lamborghinis as $key => $value) { echo $value ."is a/an ". $key ." car \n"; } ?>
我们发现这里和索引数组有所不同,索引数组是as $value,但是关联数组加上了as $key => $value,这个$key的作用就是获得每个键值。
输出
Urus is a/an suv car Huracan is a/an sports car Aventador is a/an coupe car