我有两个多维数组,例如:
array(
'a' => array(
'code1' => array('v1', 'v2'),
'code2' => array('v1', 'v2')
),
'b' => array(
'code3' => array('v1', 'v2'),
'code4' => array('v1', 'v2'),
'code5' => array('v1', 'v2'),
'code6' => array('v1', 'v2')
)
)
和
array(
'a' => array(
'code1' => '',
),
'b' => array(
'code5' => ''
)
)
我想要的结果是:
array(
'a' => array(
'code1' => array('v1', 'v2')
),
'b' => array(
'code5' => array('v1', 'v2')
)
)
我很确定可以使用内置的php函数之一,但是我坚持使用它,并且无法找到解决方案而不是手动迭代数组。 你能帮帮我吗?
答案 0 :(得分:1)
确切的解决方案取决于你想要发生什么,如果两个数组不是完全匹配关键,但是达到你想要的结果的一种方法是:
$a = array(
'a' => array(
'code1' => array('v1', 'v2'),
'code2' => array('v1', 'v2')
),
'b' => array(
'code3' => array('v1', 'v2'),
'code4' => array('v1', 'v2'),
'code5' => array('v1', 'v2'),
'code6' => array('v1', 'v2')
)
);
$b = array(
'a' => array(
'code1' => '',
),
'b' => array(
'code5' => ''
)
);
$result = array();
foreach ($a as $key => $data) {
$result[$key] = array_intersect_key($data, $b[$key]);
}
我们的想法是使用array_intersect_key
仅保留$a
中$b
中出现(作为键)的元素。