Rumah >pembangunan bahagian belakang >tutorial php >Cara Mengisih Tatasusunan PHP mengikut Panjang Nilai: `usort` vs. `uasort`?

Cara Mengisih Tatasusunan PHP mengikut Panjang Nilai: `usort` vs. `uasort`?

Patricia Arquette
Patricia Arquetteasal
2024-11-02 20:01:02462semak imbas

How to Sort a PHP Array by Value Length: `usort` vs. `uasort`?

Perkara Pesanan: Mengisih Tatasusunan mengikut Panjang Nilai dalam PHP

Mengisih tatasusunan mengikut panjang nilai ialah tugas penting dalam pelbagai aplikasi, seperti menyusun data, menganalisis teks dan banyak lagi. Dalam PHP, beberapa kaedah boleh digunakan untuk mencapai ini.

Satu pendekatan melibatkan penggunaan fungsi usort, yang menggunakan fungsi perbandingan yang ditentukan pengguna untuk mengisih tatasusunan. Dalam kes ini, kita boleh mentakrifkan fungsi tersuai yang membandingkan panjang nilai tatasusunan:

<code class="php">function sortByLength($a, $b) {
    return strlen($b) - strlen($a);
}</code>

Kami kemudiannya boleh menghantar fungsi ini sebagai parameter kedua kepada usort:

<code class="php">usort($array, 'sortByLength');</code>

Pendekatan ini adalah mudah dan membolehkan kami mengisih tatasusunan supaya nilai terpanjang muncul dahulu.

Pilihan lain ialah menggunakan uasort, yang mengisih tatasusunan sambil mengekalkan persatuan indeks asal. Fungsi perbandingan tersuai yang sama boleh digunakan:

<code class="php">uasort($array, sortByLength);</code>

Pilihan antara usort dan uasort bergantung pada tingkah laku yang diingini. usort adalah lebih cekap jika susunan indeks tidak penting, manakala uasort mengekalkan indeks asal, menyediakan tatasusunan diisih dengan pengindeksan yang boleh diramal.

Perlu diperhatikan bahawa usort ialah jenis yang tidak stabil, bermakna ia mungkin tidak mengekalkan susunan awal unsur yang sama. Walau bagaimanapun, fungsi perbandingan tersuai kami memastikan kestabilan dalam kes khusus ini, kerana ia membandingkan panjang nilai tatasusunan, yang unik.

Atas ialah kandungan terperinci Cara Mengisih Tatasusunan PHP mengikut Panjang Nilai: `usort` vs. `uasort`?. 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