这仅适用于带有索引数字的数组。例如,我有以下数组;
$array = [
"0" => "number 1",
"1" => "number 2",
"2" => "number 3",
"3" => "number 4",
"4" => "number 5",
"5" => "number 6",
"6" => "number 7",
"7" => "number 8",
"8" => "number 9"
];
我希望可以在特定的键索引范围内跳过循环,例如,如果索引数在0到5的范围内,则跳过foreach。这意味着我们只需要像这样做。
foreach($array as $key => $value){
if(array_key_exist($key, range(0,5))
continue;
echo $value."<br/>"
}
或者,我们可以使用 for...
循环
for($ind = 0; $ind < count($array); $ind++){
if(array_key_exist($ind, range(0,5))
continue;
echo $arr[$ind]."<br/>"
}
我该如何跳过索引而不使用continue或首先搜索数组键?尽管上面的代码看起来很好,但是如果我有一堆数组键和值,我认为这不是一个好选择。
for
循环呢?for($ind = 6; $ind < count($array); $ind++){
这样你就不需要在循环中进行任何检查了。 - Nickarray_key_exists
可能相当低效。使用if ($ind >= 0 && $ind <= 5) continue;
会更快。但是...如果不了解您尝试做什么的真实复杂性(您提到“一堆数组键和值”),很难提供一个好的解决方案。 - Nickarray_diff
然后循环输出怎么样? - dWinderprint_r(array_diff_key($array, array_flip(range(3,5))));
。 - Agnius Vasiliauskas