Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengumpul Baris Tatasusunan 2D dengan Cekap mengikut Nilai Lajur dalam PHP?

Bagaimanakah Saya Boleh Mengumpul Baris Tatasusunan 2D dengan Cekap mengikut Nilai Lajur dalam PHP?

Mary-Kate Olsen
Lepaskan: 2024-12-16 17:19:11
asal
989 orang telah melayarinya

How Can I Efficiently Group 2D Array Rows by a Column Value in PHP?

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);
Salin selepas log masuk

Untuk menangani isu ini sepenuhnya, kami boleh menggunakan berasaskan gelung approach:

$result = array();

foreach ($data as $element) {
  $result[$element['id']][] = $element;
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan