Bagaimana untuk Isih Tatasusunan PHP Berbilang Dimensi dengan Cekap oleh Medan Bersarang?
Dalam PHP, adalah mungkin untuk menemui tatasusunan berbilang dimensi yang mewakili data jadual , di mana setiap elemen memegang tatasusunan bersekutu pasangan nilai medan. Tugas mengisih data ini mengikut medan tertentu dalam tatasusunan bersarang boleh dicapai dengan mudah.
Pertimbangkan tatasusunan serupa pangkalan data berikut:
$data = [ [ 'name' => 'Sony TV', 'price' => 600.00 ], [ 'name' => 'LG TV', 'price' => 350.00 ], [ 'name' => 'Samsung TV', 'price' => 425.00 ] ];
Untuk mengisih tatasusunan ini mengikut ' price', seseorang boleh menggunakan fungsi array_multisort() bersama-sama dengan fungsi array_column(), yang mengekstrak lajur (medan) tertentu daripada tatasusunan multidimensi. Coretan berikut mencapai ini:
array_multisort(array_column($data, 'price'), SORT_ASC, $data);
Panggilan ini akan menyusun semula tatasusunan dalam tertib menaik berdasarkan medan 'harga' sambil membuang kekunci tatasusunan luar asal. Tatasusunan diisih yang terhasil akan muncul sebagai:
[ [ 'name' => 'LG TV', 'price' => 350.00 ], [ 'name' => 'Samsung TV', 'price' => 425.00 ], [ 'name' => 'Sony TV', 'price' => 600.00 ] ]
Sebagai alternatif, untuk versi PHP sebelum 8, penyelesaian dua lapis diperlukan kerana sekatan lulus rujukan:
$col = array_column($data, 'price'); array_multisort($col, SORT_ASC, $data);
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan PHP Berbilang Dimensi mengikut Medan Bersarang dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!