Mengumpulkan Baris Tatasusunan Bersekutu mengikut Nilai Lajur
Memandangkan tatasusunan bersekutu tatasusunan bersekutu, tugas biasa ialah mengumpulkannya mengikut lajur tertentu nilai sambil mengekalkan kunci peringkat pertama asal. Pertimbangkan tatasusunan input berikut:
[ 'a' => ['id' => 20, 'name' => 'chimpanzee'], 'b' => ['id' => 40, 'name' => 'meeting'], 'c' => ['id' => 20, 'name' => 'dynasty'], 'd' => ['id' => 50, 'name' => 'chocolate'], 'e' => ['id' => 10, 'name' => 'bananas'], 'f' => ['id' => 50, 'name' => 'fantasy'], 'g' => ['id' => 50, 'name' => 'football'] ]
Matlamat kami adalah untuk mengumpulkan subarray ini berdasarkan nilai id:
array ( 10 => array ( e => array ( id = 10, name = bananas ) ) 20 => array ( a => array ( id = 20, name = chimpanzee ) c => array ( id = 20, name = dynasty ) ) 40 => array ( b => array ( id = 40, name = meeting ) ) 50 => array ( d => array ( id = 50, name = chocolate ) f => array ( id = 50, name = fantasy ) g => array ( id = 50, name = football ) ) )
Untuk mencapai ini menggunakan PHP, kami boleh menggunakan kod berikut:
$arr = array(); foreach ($old_arr as $key => $item) { $arr[$item['id']][$key] = $item; } ksort($arr, SORT_NUMERIC);
Kod ini mula-mula berulang pada tatasusunan asal, mengekstrak id dan subbaris yang sepadan. Ia kemudian menyimpan subarray ini dalam tatasusunan baharu di bawah kekunci id dan mengekalkan kunci peringkat pertama yang asal. Akhir sekali, ia mengisih tatasusunan baharu secara berangka mengikut id.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengumpulkan baris tatasusunan bersekutu dengan nilai lajur tertentu dalam PHP sambil mengekalkan kunci peringkat pertama yang asal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!