从PHP中的数组键范围跳过键索引

这仅适用于具有索引号的数组。例如,我有这个数组;


$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而跳过索引?确保上面的代码对我来说很好,但是如果我有一堆数组键和值,我认为这不是一个好选择。


函数式编程
浏览 186回答 2
2回答

12345678_0001

您可以从第5个索引开始获取数组的切片,再到其余部分,$result&nbsp;=&nbsp;array_slice($array,5,count($array)-5,&nbsp;true);array_slice&nbsp;—提取数组的一部分注意事项:默认情况下,array_slice()将重新排序并重置整数数组索引。通过将preserve_keys设置为TRUE,可以更改此行为。不管此参数如何,始终会保留字符串键。演示。

斯蒂芬大帝

您可以将array_diff用作:$wantKeys&nbsp;=&nbsp;array_diff(array_keys($array),&nbsp;range(1,5));现在,您所需要的只是在$wantKeysas上循环:foreach($wantKeys&nbsp;as&nbsp;$k)&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$array[$k];&nbsp;//&nbsp;only&nbsp;wanted&nbsp;values可以通过array_diff_keys实现相同的想法:$wantKeys&nbsp;=&nbsp;array_diff_key($array,&nbsp;array_flip(range(1,5)));
打开App,查看更多内容
随时随地看视频慕课网APP