当前位置:  首页>> 技术小册>> PHP8入门与项目实战(3)

所谓数组的遍历,就是把数组中的变量值读取出来。本节将讲解遍历数组的常见方法。

6.5.1 遍历一维数字索引数组
下面讲解如何通过循环语句遍历一维数字索引数组。此案例中用到了for循环和foreach循环。还是以例6.3为例来讲解。

【例6.3】

  1. <?php
  2. $roomtypes = array( '单床房','标准间','三床房','VIP套房');
  3. for ($i = 0; $i < 3; $i++){
  4. echo $roomtypes[$i]." (for循环)<br/>";
  5. }
  6. foreach ($roomtypes as $room){
  7. echo $room."(foreach循环)<br/>";
  8. }
  9. ?>

运行结果如图6-5所示。

【案例分析】
(1)for循环只进行了三次。

(2)foreach循环则列出了数组中的所有数组元素。

6.5.2 遍历一维联合索引数组
下面以遍历酒店房间类型为例对联合索引数组进行遍历。
【例6.4】

  1. <?php
  2. $prices_per_day = array('单床房'=> 298,'标准间'=> 268,'三床房'=> 198,'VIP套房'=>
  3. 368);
  4. foreach ($prices_per_day as $price){
  5. echo $price."<br/>";
  6. }
  7. foreach ($prices_per_day as $key => $value){
  8. echo $key.":".$value." 每天。<br/>";
  9. }
  10. ?>

运行结果如图6-6所示。

【案例分析】
其中,foreach ($prices_per_day as $price){}遍历数组元素,所以输出4个整型数字。而foreach ($prices_per_day as $key => $value){}除了遍历数组元素外,还遍历其所对应的关键字,如单床房是数组元素298的关键字。

6.5.3 遍历多维数组
下面以使用多维数组编写房间类型为例演示数组遍历,具体操作步骤如下。
【例6.5】

运行结果如图6-7所示。

【案例分析】
(1)$roomtypes中的每个数组元素都是一个数组,而作为数组元素的数组又都有三个拥有键名的数组元素。

(2)遍历多维数组一般情况下需要嵌套循环或者递归循环,但是这些方式都不够灵活,因为在不确定该数组是几维的情况下,不可能永无止境地嵌套循环。这里配合使用递归、foreach()和迭代器类RecursiveIteratorIterator,即可完美实现多维数组的循环输出。