首頁 > 後端開發 > php教程 > 如何在 PHP 中按特定鍵對多維關聯數組進行排序?

如何在 PHP 中按特定鍵對多維關聯數組進行排序?

Barbara Streisand
發布: 2024-12-04 18:30:12
原創
977 人瀏覽過

How to Sort a Multidimensional Associative Array in PHP by a Specific Key?

如何在PHP 中按鍵對關聯數組進行排序[重複]

對數組進行排序可能是編程中的常見任務,尤其是當處理PHP 中的關聯數組等資料結構。這些數組與常規數組類似,但允許您透過鍵而不是數字索引來存取元素。

問題:

您有一個關聯數組,其元素如下如下所示:

Array
(
    [0] => Array
        (
            [text] => tests
            [language] => 
            [advertiserCompetitionScale] => 5
            [avgSearchVolume] => 7480000
            [lastMonthSearchVolume] => 9140000
        )

    [1] => Array
        (
            [text] => personality tests
            [language] => 
            [advertiserCompetitionScale] => 5
            [avgSearchVolume] => 165000
            [lastMonthSearchVolume] => 201000
        )

    [2] => Array
        (
            [text] => online tests
            [language] => 
            [advertiserCompetitionScale] => 5
            [avgSearchVolume] => 246000
            [lastMonthSearchVolume] => 301000
        )

)
登入後複製

您想要依照「avgSearchVolume」依降序排列此陣列

解:

PHP提供了一個名為 usort 的內建函數,您可以使用它來實現此目的。 usort 有兩個參數:一個要排序的陣列和一個比較函數。比較函數採用兩個陣列元素作為參數,並傳回負整數、零或正整數:

  • 如果第一個元素應位於第二個元素之前,則為負整數。
  • 如果兩個元素相等,則為零。
  • 如果第二個元素應位於第一個元素之前,則為正整數

要對數組進行排序,您可以定義一個比較函數,如下所示:

function cmp($a, $b)
{
    return $b['avgSearchVolume'] - $a['avgSearchVolume'];
}
登入後複製

此函數從“avgSearchVolume”中減去第一個元素的“avgSearchVolume”欄位”第二個元素的欄位。個元素之前。後,您的陣列將按「avgSearchVolume」欄位降序排序。

以上是如何在 PHP 中按特定鍵對多維關聯數組進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板