-1

我想使用仅包含键的小数组来过滤大数组并返回仅匹配键的数组。例子:

ARRAY 1(大阵列)

$array['23']['sasdseqw'] = 'bla bla';
$array['35']['sadasdsasa'] = '...dd';
$array['21']['saadadass'] = 'ssddds';
$array['15']['asadsadasas'] = 'adsdsas';

如果我使用 return $array; 这会给我所有的键和值。但我只想从上面的键中获取键 21 和 15 并删除其他值。如何?

阵列 2(过滤器)

$array2 = array('21','15');

我想使用 array2 21 和 15 来过滤并将大数组转换为仅包含 21 和 15 个值的数组,而不仅仅是键,而是没有 35,23...其他键的完整数组。

如何做到这一点?

4

2 回答 2

0

您可以使用array_intersect_key将所需的结果提取到新数组中:

$keys = [21, 15];
$result = array_intersect_key($array, array_flip($keys));

看到它在行动

于 2013-11-15T00:43:32.337 回答
0

循环$array,并取消设置所有不在的键,$array2例如:

foreach ($array as $k => $v) {
    if (!in_array($k, $array2)) {
        unset($array[$k]);
    }
}
于 2013-11-15T00:40:42.257 回答