Saya ingin menggabungkan dua tatasusunan berdasarkan nilai lajur biasa. Berikut ialah 2 tatasusunan saya:
$array1 = [ [ "total_process_per_category" => "6", "category_id" => "1" ], [ "total_process_per_category" => "2", "category_id" => "2" ] ]; $array2 = [ [ "total_pinned_per_category" => "16", "category_id" => "1" ], [ "total_pinned_per_category" => "4", "category_id" => "2" ] ];
Saya mahu menggabungkan tatasusunan ini untuk mendapatkan:
array ( 0 => array ( 'total_process_per_category' => '6', 'total_pinned_per_category' => '16', 'category_id' => '1', ), 1 => array ( 'total_process_per_category' => '2', 'total_pinned_per_category' => '4', 'category_id' => '2', ), )
Seperti yang anda lihat, kedua-dua tatasusunan mempunyai kunci yang sama ['id_kategori'] dan nilai yang sama.
Saya ingin mendapatkan hasil di mana ['total_process_per_category'] dan ['total_pinned_per_category'] diletakkan bersama pada tatasusunan yang sama berdasarkan nilai ['category_id'] mereka.
Saya mendapat ini menggunakan nested foreach tetapi ia kelihatan hodoh. Tolong beritahu saya cara yang lebih baik.
Ini boleh dilakukan tanpa "foreach bersarang hodoh". Cantumkan dua tatasusunan sebelum lelaran, kumpulkan mengikut nilai category_id. Selepas gelung tamat, gunakan array_values() untuk mengosongkan kunci peringkat pertama sementara.
Kod: (Demo) (array_reduce() versi)
Keluaran:
Boleh cuba
array_reduce
: