PHP 数组怎么遍历

家里囤了两箱橘子,要挨个挑出坏的、数出有多少个好的,要是一个一个翻着看,不仅费时间还容易漏。其实这就和PHP里“数组遍历”的逻辑一模一样——数组就像装橘子的箱子,里面存了一串数据,遍历就是把这些数据挨个“查一遍”,不管是取数据、改数据还是筛数据,都得先做这一步。

最常用的:foreach循环,像给橘子挨个贴标签

逛超市时,导购会给每个货架上的商品贴专属价格标签,PHP里的foreach就是给数组里的每个元素贴“标记”的工具,它不用管数组有多长,自动从头到尾走一遍。

PHP 数组怎么遍历

比如我们把一周要吃的水果存成数组:$fruits = ['苹果', '香蕉', '橙子', '草莓']; 要挨个打印出来,就可以用foreach:

`php

foreach ($fruits as $fruit) {

echo $fruit . '<br>';

}

`

运行后会按顺序输出苹果、香蕉、橙子、草莓,就像你把橘子从箱子里拿出来,一个一个摆到桌子上。如果需要同时拿到元素的位置(也就是数组的“序号”,PHP里叫键),可以改成:

`php

foreach ($fruits as $key => $fruit) {

echo "第" . ($key + 1) . "个水果:" . $fruit . '<br>';

}

`

这样就能知道“第1个是苹果”,就像给每个橘子贴了“第1个”“第2个”的标签,不会搞混顺序。

适合需要序号的:for循环,按位置挨个找

如果数组里的元素是按位置排的,而且需要用位置做判断(比如只看前3个元素),用for循环更合适。就像你按箱子里的序号(从0开始数),第1个、第2个……挨个拿。

还是用水果数组,PHP里数组的序号是从0开始的,所以要遍历所有元素,得记住最大的序号是数组长度减1。比如:

`php

$fruits = ['苹果', '香蕉', '橙子', '草莓'];

$length = count($fruits); // count就是数数组里有多少个元素,这里是4

for ($i = 0; $i < $length; $i++) {

echo "第" . ($i + 1) . "个水果:" . $fruits[$i] . '<br>';

}

`

这个方法适合需要控制遍历范围的情况,比如“只数前3个水果”,只要把$i < $length</code>改成$i < 3</code>就行,就像你只拿箱子里前3个橘子,不用翻完整个箱子。

老方法:while循环,配合指针移动

PHP给数组设了个“指针”,就像你手上拿的筷子,一开始指向第一个元素,每拿一次就挪到下一个。while循环就是跟着这个指针,挨个取元素。

用法是这样的:

`php

$fruits = ['苹果', '香蕉', '橙子', '草莓'];

reset($fruits); // 把指针移回第一个元素,就像把筷子放回第一个橘子上

while ($fruit = current($fruits)) { // current是看指针指向的元素,空的话就停止

echo $fruit . '<br>';

next($fruits); // next是把指针挪到下一个,就像筷子移到下一个橘子

}

`

这个方法现在用得少,但适合老项目维护,就像有人习惯用旧筷子吃饭,不用特意换,能完成任务就行。

最后要提醒的是,遍历数组时别随便改数组的长度,就像别在数橘子的时候往箱子里塞新的,不然可能会漏数或者数多。这些方法里,foreach是新手最容易上手的,也是开发时用得最多的,先把它练熟,再慢慢尝试其他方法就好。

上一篇 C / C++ 语言核心特性与实用开发场景的入门科普指南