มี 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', ]
]
];
php จะ merge array ยังไงโดยไม่ใช้การ 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', ]
]
];