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
Mary-Kate Olsenasal
2024-12-16 17:19:111105semak imbas

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);

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!

Kenyataan:
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