【发布时间】:2017-02-02 15:41:17
【问题描述】:
在任意顺序和键的数组中,如下
$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。
【问题讨论】:
-
所有数组值是唯一的还是您希望重复?
-
你可以 array_flip() 你的数组(交换键和值), array_filter() 翻转的数组,然后 array_flip() 返回结果。当然,对于不包含任何重复值的数组,这只会 100% 可靠地工作,但如果你能满足该要求,那么它应该可以工作。