Dalam PHP, tatasusunan dua dimensi ialah jenis data yang biasa digunakan Ia adalah tatasusunan yang terdiri daripada tatasusunan satu dimensi Setiap tatasusunan satu dimensi boleh mengandungi berbilang elemen. Apabila berurusan dengan tatasusunan dua dimensi, kita mungkin perlu mengisih keseluruhan tatasusunan berdasarkan nilai elemen tertentu Artikel ini akan memperkenalkan beberapa cara untuk melaksanakan pengisihan tatasusunan dua dimensi dalam PHP.
Fungsi array_multisort() dalam PHP boleh digunakan untuk mengisih berbilang tatasusunan atau tatasusunan berbilang dimensi. Dalam tatasusunan dua dimensi, kita boleh menggunakan fungsi ini untuk mengisih tatasusunan satu dimensi yang ditentukan sambil mengekalkan hubungan nilai kunci yang sama seperti dalam tatasusunan satu dimensi yang lain yang sepadan.
Kod sampel:
<?php $students = array( array("name" => "Tom", "score" => 80), array("name" => "Mary", "score" => 90), array("name" => "Jack", "score" => 85), ); // 按成绩升序排序 $sort_by_score = array(); foreach ($students as $key => $row) { $sort_by_score[$key] = $row["score"]; } array_multisort($sort_by_score, SORT_ASC, $students); // 输出结果 foreach ($students as $row) { echo $row["name"] . " " . $row["score"] . "\n"; } ?>
Dalam kod di atas, tatasusunan dua dimensi $pelajar ditakrifkan dahulu, di mana setiap tatasusunan satu dimensi mengandungi nama dan gred pelajar. Kami kemudian memberikan setiap tatasusunan satu dimensi nilai kunci yang unik supaya surat-menyuratnya dipelihara selepas mengisih.
Seterusnya, kami menggunakan gelung foreach untuk melintasi tatasusunan $pelajar dan menjana tatasusunan $sort_by_score berdasarkan nilai elemen "skor". Akhir sekali, panggil fungsi array_multisort() untuk mengisih tatasusunan $students mengikut tatasusunan $sort_by_score dalam kod bermaksud tertib menaik.
Fungsi usort() dalam PHP boleh digunakan untuk menyesuaikan pengisihan tatasusunan dan anda boleh menentukan peraturan pengisihan mengikut keperluan anda sendiri. Dalam tatasusunan dua dimensi, kita boleh menggunakan fungsi ini untuk mengisih elemen berdasarkan nilainya.
Kod contoh:
<?php $students = array( array("name" => "Tom", "score" => 80), array("name" => "Mary", "score" => 90), array("name" => "Jack", "score" => 85), ); // 根据成绩排序 usort($students, function ($a, $b) { return $a["score"] < $b["score"] ? 1 : -1; }); // 输出结果 foreach ($students as $row) { echo $row["name"] . " " . $row["score"] . "\n"; } ?>
Dalam kod di atas, kami menggunakan fungsi usort() untuk mengisih tatasusunan $students. Antaranya, parameter kedua yang diluluskan ialah fungsi tanpa nama yang digunakan untuk menentukan peraturan pengisihan. Dalam contoh ini, kami mengisih pelajar dalam tertib menurun berdasarkan gred mereka dan menghasilkan keputusan.
Berbeza dengan fungsi usort(), fungsi uasort() dalam PHP boleh mengekalkan hubungan nilai kunci elemen tatasusunan. Ini bermakna selepas mengisih, nilai kunci setiap elemen masih sama seperti dalam tatasusunan sebelumnya.
Kod contoh:
<?php $students = array( "Tom" => array("score" => 80), "Mary" => array("score" => 90), "Jack" => array("score" => 85), ); // 根据成绩排序 uasort($students, function ($a, $b) { return $a["score"] < $b["score"] ? 1 : -1; }); // 输出结果 foreach ($students as $name => $row) { echo $name . " " . $row["score"] . "\n"; } ?>
Dalam kod di atas, kami mentakrifkan tatasusunan bersekutu $pelajar, dengan nilai utama setiap elemen ialah nama pelajar dan nilai yang sepadan ialah grednya . Kemudian, gunakan fungsi uasort() untuk mengisih tatasusunan $students, mengekalkan perhubungan nilai kunci. Akhirnya, hasil yang diisih adalah output.
Ringkasan:
Terdapat banyak cara untuk melaksanakan pengisihan tatasusunan dua dimensi dalam PHP Artikel ini memperkenalkan tiga kaedah yang lebih biasa digunakan: menggunakan fungsi array_multisort(), menggunakan usort(. ) dan gunakan fungsi uasort(). Apabila menggunakan fungsi ini untuk pengisihan, kita boleh mentakrifkan peraturan pengisihan mengikut keperluan kita sendiri, dan mengekalkan atau tidak mengekalkan perhubungan nilai kunci elemen tatasusunan.
Atas ialah kandungan terperinci Apakah kaedah untuk menyusun tatasusunan dua dimensi dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!