我想使用包含键的小数组来过滤大数组并返回仅匹配键的数组。例如:
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 ...其他键的完整数组。
如何实现?
答案 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 强>