這僅適用于具有索引號的數組。例如,我有這個數組;$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/>" }我如何不使用繼續或先搜索array_key而跳過索引?確保上面的代碼對我來說很好,但是如果我有一堆數組鍵和值,我認為這不是一個好選擇。
2 回答

12345678_0001
TA貢獻1802條經驗 獲得超5個贊
您可以從第5個索引開始獲取數組的切片,再到其余部分,
$result = array_slice($array,5,count($array)-5, true);
array_slice —提取數組的一部分
注意事項:
默認情況下,array_slice()將重新排序并重置整數數組索引。通過將preserve_keys設置為TRUE,可以更改此行為。不管此參數如何,始終會保留字符串鍵。
演示。

斯蒂芬大帝
TA貢獻1827條經驗 獲得超8個贊
您可以將array_diff用作:
$wantKeys = array_diff(array_keys($array), range(1,5));
現在,您所需要的只是在$wantKeys
as上循環:
foreach($wantKeys as $k) echo $array[$k]; // only wanted values
可以通過array_diff_keys實現相同的想法:
$wantKeys = array_diff_key($array, array_flip(range(1,5)));
- 2 回答
- 0 關注
- 215 瀏覽
添加回答
舉報
0/150
提交
取消