Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengisih Tatasusunan Bersekutu PHP dalam Susunan Menurun mengikut Medan Tertentu?

Bagaimana untuk Mengisih Tatasusunan Bersekutu PHP dalam Susunan Menurun mengikut Medan Tertentu?

Susan Sarandon
Susan Sarandonasal
2024-12-18 11:31:11324semak imbas

How to Sort a PHP Associative Array in Descending Order by a Specific Field?

Mengisih Tatasusunan Bersekutu mengikut Medan Tertentu dalam PHP

Apabila bekerja dengan tatasusunan bersekutu dalam PHP, mungkin perlu mengisih tatasusunan berdasarkan medan atau kunci tertentu. Dalam kes khusus ini, keperluan adalah untuk mengisih tatasusunan bersekutu dalam tertib menurun bagi medan "avgSearchVolume".

PHP tidak menyediakan fungsi terbina dalam khusus untuk mengisih tatasusunan bersekutu mengikut medan tertentu. Walau bagaimanapun, anda boleh mencapai ini menggunakan fungsi usort() dan fungsi perbandingan tersuai.

Begini cara anda boleh melakukannya:

function cmp($a, $b)
{
    return $b['avgSearchVolume'] - $a['avgSearchVolume'];
}

usort($array, "cmp");

Penjelasan:

  1. Fungsi cmp() ialah fungsi perbandingan tersuai yang membandingkan dua elemen tatasusunan berdasarkan Medan "avgSearchVolume".
  2. Di dalam fungsi cmp(), perbandingan dilakukan dengan menolak avgSearchVolume elemen pertama ($a) daripada elemen kedua ($b).
  3. Keputusan negatif menunjukkan bahawa elemen pertama harus datang selepas yang kedua dalam tatasusunan yang diisih, hasil positif menunjukkan sebaliknya, dan hasil sifar bermakna mereka harus kekal dalam semasa mereka tertib.
  4. Fungsi usort() kemudian menggunakan fungsi cmp() untuk mengisih tatasusunan $array dalam tertib menurun bagi medan "avgSearchVolume".

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan Bersekutu PHP dalam Susunan Menurun mengikut Medan Tertentu?. 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