php จะ merge array ยังไงโดยไม่ใช้การ loop

กระทู้คำถาม
มี array สองก้อน คือ a และ b ต้องการเอามารวมกัน โดยอ้างอิงจาก id แล้วให้ได้ผลลัพธ์ตาม result ข้างล่าง โดยไม่ใช้การ loop

$a = [ ['id'=>1, 'name'=>'testA'], ['id'=>2, 'name'=>'testB'], ['id'=>3, 'name'=>'testC'], ['id'=>4, 'name'=>'testD'] ];

$b = [ 
            ['id'=>1, 'path' => '../../../1.png'],
            ['id'=>1, 'path' => '../../../1.png'],
            ['id'=>2, 'path' => '../../../2.png'],
            ['id'=>2, 'path' => '../../../2.png'],
            ['id'=>2, 'path' => '../../../2.png'],
            ['id'=>4, 'path' => '../../../4.png']
];

$result = [
     [ 
           'id'=>1,
           'name'=>'testA',
           'image' => [ 'path' => '../../../1.png', 'path' => '../../../1.png' ]
    ],
    [
          'id'=>2,
          'name'=>'testB',
          'image' => [ 'path' => '../../../2.png', 'path' => '../../../2.png', 'path' => '../../../2.png' ]
    ],
    [
          'id'=>3,
          'name'=>'testC',
          'image' => []
    ],
    [
          'id'=>4,
          'name'=>'testD',
          'image' => [ 'path' => '../../../4.png', ]
    ]
];
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่