php - 抓取指定范围内键的数组值 - PHP 5.5

标签 php arrays php-5.5

在任意顺序和键的数组中,如下所示

$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/

相关文章:

php - 使用 jQuery 在 div 中加载 PHP 页面

php - Laravel - 通知或分派(dispatch)作业队列工作人员 laravel 会导致带锁表的双重选择吗?

C# Silverlight 获取声音的频率

php - 启用 PHP 5.5 OPCache

PHP 不会与 MongoDB 驱动程序一起编译

namespaces - 如何使用命名空间访问类成员?

php - 验证 php mysql 表单

php - 如何在php中从 parent 那里获取孙子

arrays - 将 pandas 数据框转换为二维数组

javascript - 如何通过事件对象从 originalEvent 传递数据?