问题描述
我有 2 个数组,我必须合并具有相似值的数组。我尝试了 PHP 的每个和基本函数来合并数组,但没有得到正确的结果。
我尝试了下面的事情,但它对我不起作用,因为我在第二个数组中有多个数据。正如您在子数组中看到的那样,我有多个记录,我想将它们一起保存在基本数组中。
$base= [
['id' => 1],['id' => 2],['id' => 3],['id' => 4],];
$child = [
['id' => 1,'size' => 'SM'],['id' => 1,'size' => 'LK'],['id' => 2,'size' => 'XL'],['id' => 4,'size' => 'LG'],['id' => 3,'size' => 'MD'],];
foreach(array_merge($base,$child) as $el){
$merged[$el['id']] = ($merged[$el['id']] ?? []) + $el;
}
Output :
array (
1 =>
array (
'id' => 1,'size' => 'SM',),2 =>
array (
'id' => 2,'size' => 'XL',3 =>
array (
'id' => 3,'size' => 'MD',4 =>
array (
'id' => 4,'size' => 'LG',)
desired output :
array (
1 =>
array (
'id' => 1,1 => array('size' => 'SM'),2 => array('size' => 'LK'),2 =>
array (
'id' => 2,1 => array('size' => 'XL'),3 =>
array (
'id' => 3,1 => array('size' => 'MD'),4 =>
array (
'id' => 4,1 => array('size' => 'LG'),)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)