在任意顺序和键的数组中,如下所示
$myArray = array(
1 => 'foo',
4 => 'bar',
6 => 'foobar',
24 => 'barfoo',
30 => 'fizz',
35 => 'buzz',
50 => 'fizzbuzz'
);
如何通过键范围获取数组的一部分,例如键在 5 到 40 之间的每个项目
类似 array_range($myArray, 5, 40);
预期输出:array(6 => 'foobar', 24 => 'barfoo', 30 => 'fizz', 35 => 'buzz')
这类似于 How to use array_filter() to filter array keys?但在本例中,我仅限于 PHP 5.5。
最佳答案
在数组中定义一系列键,然后计算键的交集:
$range = array_flip(range(5, 40));
$result = array_intersect_key($myArray, $range);
一类轮:
$result = array_intersect_key($myArray, array_flip(range(5, 40)));
可以选择填充范围数组(我只是首先想到了另一个,它更短):
$range = array_fill_keys(range(5, 40), 1);
如果您想要特定的键而不是范围,只需定义键或值的数组并翻转即可:
$range = array_flip(array(6, 24, 50));
//or
$range = array(6=>1, 24=>1, 50=>1);
关于php - 抓取指定范围内键的数组值 - PHP 5.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42006375/