我有两个数组,我想根据三个值(group_id,user_id,unit_id)的匹配进行组合。如果这些值出现在一个数组中而不是另一个数组中,我想插入一个字符串来表示没有值存在。组合多维数组
阵列1:
Array
(
[0] => Array
(
[group_id] => 1
[user_id] => 7
[unit_id] => 21382
[amount] => 500
[type] => A
)
[1] => Array
(
[group_id] => 1
[user_id] => 7
[unit_id] => 24255
[amount] => 300
[type] => A
)
[2] => Array
(
[group_id] => 1
[user_id] => 4
[unit_id] => 21382
[amount] => 50
[type] => A
)
[3] => Array
(
[group_id] => 1
[user_id] => 4
[unit_id] => 24255
[amount] => 67
[type] => A
)
)
阵列2:
Array
(
[0] => Array
(
[group_id] => 1
[user_id] => 7
[unit_id] => 21382
[amount] => 100
[type] => B
)
[1] => Array
(
[group_id] => 1
[user_id] => 7
[unit_id] => 24255
[amount] => 82
[type] => B
)
)
所需的结果:
Array
(
[0] => Array
(
[group_id] => 1
[user_id] => 7
[unit_id] => 21382
[A] => 500
[B] => 100
)
[1] => Array
(
[group_id] => 1
[user_id] => 7
[unit_id] => 24255
[A] => 300
[B] => 82
)
[2] => Array
(
[group_id] => 1
[user_id] => 4
[unit_id] => 21382
[A] => 50
[B] => undefined
)
[3] => Array
(
[group_id] => 1
[user_id] => 4
[unit_id] => 24255
[A] => 67
[B] => undefined
)
)
使用foreach循环我设法得到的部分结果,但是这并未” t解释了值出现在一个数组中而不是另一个数组的情况。
foreach ($array_1 as &$arr1) {
foreach ($array_2 as $arr2) {
if ($arr1['group_id'] == $arr2['group_id'] && $arr1['user_id'] == $arr2['user_id'] && $arr1['unit_id'] == $arr2['unit_id']) {
$newArr[] = array('group_id'=>$arr1['group_id'], 'user_id'=>$arr1['user_id'], 'unit_id'=>$arr1['unit_id'], 'group_id'=>$arr1['group_id'], 'A'=>$arr1['amount'], 'B'=>$arr2['amount']);
break;
}
}
}
这工作,节省了我很多时间,谢谢! – user6368630