如何根据php中的值合并数组?

问题描述

我有 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 (将#修改为@)