首頁 > 後端開發 > php教程 > PHP 中按自訂排序規則對陣列進行排序,保留原始鍵名

PHP 中按自訂排序規則對陣列進行排序,保留原始鍵名

王林
發布: 2024-05-04 09:27:01
原創
751 人瀏覽過

在 PHP 中,使用 uasort() 函數可依自訂排序規則對陣列進行排序,同時保留原始鍵名。自訂比較函數是一個接受兩個元素作為輸入並傳回整數的函數:負數表示前者小於後者,零表示相等,正數表示前者大於後者。

PHP 中按自定义排序规则对数组进行排序,保留原始键名

PHP 中如何按自訂排序規則對陣列進行排序,保留原始鍵名

在PHP 中,按自定義排序規則對陣列進行排序是一種常見需求。例如,您可能想要按產品名稱、價格或其他自訂標準對產品清單進行排序。

PHP 提供了一個內建函數 uasort(),它允許您使用自訂比較函數對陣列進行排序,同時保留原始鍵名。

語法

uasort ( array &$array , callable $value_compare_func ) : bool
登入後複製
  • $array - 要排序的陣列
  • $value_compare_func - 自訂比較函數,傳回正數、負數或零

自訂比較函數

自訂比較函數是用來比較陣列元素的函數。它將兩個參數$a$b 作為輸入,並根據下列規則傳回一個整數:

  • 如果$a 小於$b,則傳回負數。
  • 如果 $a 等於 $b,則傳回零。
  • 如果 $a 大於 $b,則傳回正數。

實戰案例

以下是一個比較兩個字串長度的自訂比較函數的範例:

<?php
function compare_string_length($a, $b) {
    return strlen($a) - strlen($b);
}
登入後複製

對陣列進行排序

現在讓我們按自訂排序規則對陣列進行排序。下面的範例將按照字串長度從小到大對一個數組進行排序:

<?php
$fruits = array("apple", "banana", "orange", "grapefruit");

uasort($fruits, "compare_string_length");

print_r($fruits);
登入後複製

輸出:

Array
(
    [grapefruit] => grapefruit
    [orange] => orange
    [apple] => apple
    [banana] => banana
)
登入後複製

如您所見,數組現在按字串長度從短到長進行排序,同時保留了原始鍵名。

以上是PHP 中按自訂排序規則對陣列進行排序,保留原始鍵名的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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