Dalam bidang pemadanan anagram, menyusun padanan positif dalam tertib menurun mengikut panjangnya boleh menjadi langkah penting. Jika anda menghadapi cabaran ini dalam PHP, berikut ialah penyelesaian menggunakan fungsi usort yang berkuasa.
<code class="php">function sortByLength($a, $b) { return strlen($b) - strlen($a); } usort($array, 'sortByLength');</code>
Fungsi sortByLength tersuai ini membandingkan panjang dua rentetan dan mengembalikan nilai negatif jika rentetan pertama lebih panjang. Fungsi usort mengisih tatasusunan di tempatnya menggunakan fungsi perbandingan yang disediakan.
Sebagai alternatif, jika anda perlu mengekalkan indeks tatasusunan asal, anda boleh menggunakan uasort sebaliknya:
<code class="php">uasort($array, 'sortByLength');</code>
Sementara kedua-dua usort dan uasort menawarkan penyelesaian yang berdaya maju, usort dianggap sebagai jenis yang tidak stabil, yang bermaksud elemen yang sama mungkin tidak mengekalkan susunan asalnya selepas mengisih. Oleh itu, versi yang disediakan memastikan gelagat pengisihan yang stabil.
Untuk menggambarkan proses pengisihan, pertimbangkan tatasusunan berikut:
<code class="php">$array = ["bbbbb", "dog", "cat", "aaa", "aaaa"];</code>
Selepas mengisih, tatasusunan akan disusun seperti berikut:
[0] => "bbbbb" [1] => "aaaa" [2] => "aaa" [3] => "cat" [4] => "dog"
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan PHP mengikut Panjang Rentetan dalam Susunan Menurun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!