Mengumpulkan Baris Tatasusunan 2D mengikut Nilai Lajur Dengan Berkesan
Dalam contoh ini, kita mempunyai senario di mana kita perlu mengumpulkan tatasusunan bersekutu tatasusunan berdasarkan nilai lajur tertentu, 'id'. Matlamatnya adalah untuk mencapai tugas ini tanpa memperkenalkan pendua sambil mengekalkan struktur data asal.
Walaupun array_column() dan array_unique() boleh mencapai sebahagian daripada kumpulan, ia gagal untuk mengelakkan pendua, seperti yang digambarkan di bawah:
function array_group_by_id($array) { return array_column($array, null, 'id'); } $grouped_array = array_group_by_id($data);
Untuk menangani isu ini sepenuhnya, kami boleh menggunakan berasaskan gelung approach:
$result = array(); foreach ($data as $element) { $result[$element['id']][] = $element; }
Gelung ini berulang ke atas tatasusunan asal, menambahkan setiap elemen pada subarray yang sepadan dalam tatasusunan 'hasil' berdasarkan nilai 'id'nya. Ini secara berkesan mencipta struktur bersarang di mana setiap subarray mengandungi baris daripada tatasusunan asal yang berkongsi 'id' yang sama.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengumpul Baris Tatasusunan 2D dengan Cekap mengikut Nilai Lajur dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!