我有两个数组:
$pool = array(
'foo' => array('foobar1'),
'bar' => array('foobar2'),
'lou' => array('foobar3'),
'zuu' => array('foobar4')
);
$remove = array('lou', 'zuu');
我如何获得此阵列:
$result = array(
'foo' => array('foobar1'),
'bar' => array('foobar2')
);
我可以做一个foreach循环,但我喜欢像
这样更优雅的解决方案$result = array_intersect_key( $pool, array_flip($remove) );
这给了我另一种方式:
array(
'lou' => array('foobar3'),
'zuu' => array('foobar4')
);
编辑:我的一行解决方案是:
array_intersect_key( $pool, array_flip( array_keys( array_diff_key( $pool, array_flip( $remove ) ) ) ) )
答案 0 :(得分:3)
试试这个
$pool = array(
'foo' => array('foobar1'),
'bar' => array('foobar2'),
'lou' => array('foobar3'),
'zuu' => array('foobar4')
);
$remove = array('lou', 'zuu');
$compare=array_diff_key($pool, array_flip($remove));
var_dump(array_intersect_key($pool,$compare));
答案 1 :(得分:2)
使用未设置功能
unset($pool['lou']);