Mengisih Tatasusunan Tatasusunan Bersekutu mengikut Nilai Lajur
Mengisih data ialah tugas asas dalam pengaturcaraan. Apabila bercakap tentang tatasusunan bersekutu, PHP menyediakan beberapa fungsi terbina dalam untuk memudahkan proses ini.
Pertimbangkan tatasusunan bersekutu berikut:
$inventory = array( array("type" => "fruit", "price" => 3.50), array("type" => "milk", "price" => 2.90), array("type" => "pork", "price" => 5.43) );
Tugasnya adalah untuk mengisih unsur-unsur $inventori mengikut lajur "price" dalam tertib menurun, menghasilkan:
$inventory = array( array("type" => "pork", "price" => 5.43), array("type" => "fruit", "price" => 3.50), array("type" => "milk", "price" => 2.90) );
Penyelesaian menggunakan array_multisort()
Fungsi array_multisort() membenarkan mengisih tatasusunan (atau berbilang tatasusunan) mengikut berbilang lajur. Untuk mengisih mengikut "harga" dalam tertib menurun, kod berikut boleh digunakan:
$price = array(); foreach ($inventory as $key => $row) { $price[$key] = $row['price']; } array_multisort($price, SORT_DESC, $inventory);
Penyelesaian Alternatif dengan array_column() (PHP 5.5.0 )
Untuk PHP versi 5.5.0 dan ke atas, fungsi array_column() boleh digunakan untuk memudahkan perkara di atas kod:
$price = array_column($inventory, 'price'); array_multisort($price, SORT_DESC, $inventory);
Penggunaan
Susun atur $inventori yang diisih kini boleh digunakan mengikut keperluan. Contohnya, kod berikut akan mencetak tatasusunan yang diisih:
foreach ($inventory as $item) { echo $item['type'] . ": $" . $item['price'] . PHP_EOL; }
Output:
pork: .43 fruit: .50 milk: .90
Atas ialah kandungan terperinci Bagaimana untuk Menyusun Susunan Susunan Bersekutu mengikut Nilai Lajur dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!