为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
函数式编程 2021-05-13 18:38:31
这仅适用于具有索引号的数组。例如,我有这个数组;$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,可以更改此行为。不管此参数如何,始终会保留字符串键。

演示


查看完整回答
反对 回复 2021-05-28
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

您可以将array_diff用作:

$wantKeys = array_diff(array_keys($array), range(1,5));

现在,您所需要的只是在$wantKeysas上循环:

foreach($wantKeys as $k) 
    echo $array[$k]; // only wanted values

可以通过array_diff_keys实现相同的想法:

$wantKeys = array_diff_key($array, array_flip(range(1,5)));


查看完整回答
反对 回复 2021-05-28
  • 2 回答
  • 0 关注
  • 185 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信