PHP中如何实现数组的foreach循环从第二个元素开始遍历?
PHP实现foreach从第二个元素开始遍历的修改方案
下面是几种常用的实现方式,可根据场景选择:
方法1:通过计数/索引判断跳过首个元素
如果是默认索引数组,直接判断键值为0时跳过即可,修改后代码如下:$num = array("20","40","89","300","190","15"); $new = 0; foreach ($num as $key => $val) { // 跳过索引为0的第一个元素 if ($key === 0) continue; $new = $val; echo "Value: $new\n"; }如果你的数组是关联数组或者索引不连续,可以新增计数器判断:
$num = array("20","40","89","300","190","15"); $new = 0; $count = 0; foreach ($num as $val) { if ($count === 0) { $count++; continue; } $new = $val; echo "Value: $new\n"; $count++; }该方法优势是不会修改原数组,适合需要保留原数组完整结构的场景。
方法2:使用
array_slice()切割数组后遍历
直接从数组下标1的位置切割,得到从第二个元素开始的新数组后直接遍历,代码更简洁:$num = array("20","40","89","300","190","15"); $new = 0; // 第二个参数为1表示从下标1开始截取 foreach (array_slice($num, 1) as $val) { $new = $val; echo "Value: $new\n"; }注意
array_slice()默认会重置数组的键名,如果需要保留原键名,可以传第三个参数为true。方法3:移动数组指针遍历(不推荐)
PHP7.2之后each()函数已被废弃,该方法仅作为兼容旧版本的参考:$num = array("20","40","89","300","190","15"); $new = 0; // 指针移到第二个元素 next($num); while (list($key, $val) = each($num)) { $new = $val; echo "Value: $new\n"; }
内容的提问来源于stack exchange,提问作者Segun
相关产品推荐
相关产品推荐

