如何使用来自另一个数组PHP的键过滤多维数组

时间:2013-11-15 00:34:02

标签: php arrays

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

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 ...其他键的完整数组。

如何实现?

2 个答案:

答案 0 :(得分:0)

循环$array,取消设置$array2以外的所有密钥,例如:

foreach ($array as $k => $v) {
    if (!in_array($k, $array2)) {
        unset($array[$k]);
    }
}

答案 1 :(得分:0)

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

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

<强> See it in action