我有两个多维数组,例如:
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 函数之一是可能的,但是我坚持使用它,并且找不到解决方案而不是手动遍历数组。你能帮我吗?
如果两个数组在键上不完全匹配,确切的解决方案将取决于您想要发生的情况,但达到所需结果的一种方法是:
$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
中(作为键(。