函式名: Ds\Map::sort()
適用版本: PHP 7.0 以上
用法:該方法用於按鍵值對的鍵對映順序對對映進行排序。鍵的排序方式由提供的回撥函式決定,如果未提供回撥函式則使用預設排序方法。該方法會直接修改原始的對映。
引數:
- callback(可選):用於比較鍵的回撥函式。該函式需要接受兩個引數,比較兩個鍵的順序,如果第一個引數小於等於第二個引數,應返回一個負數;如果兩個引數相等,應返回 0;如果第一個引數大於等於第二個引數,應返回一個正數。
示例:
$map = new Ds\Map(['a' => 3, 'b' => 1, 'c' => 2]);
$map->sort();
print_r($map); // 輸出: Ds\Map Object ( [0] => Array ( [b] => 1 ) [1] => Array ( [c] => 2 ) [2] => Array ( [a] => 3 ) )
使用自定義回撥函式的示例:
$map = new Ds\Map(['a' => 3, 'b' => 1, 'c' => 2]);
$map->sort(function($a, $b) {
if ($a > $b) {
return 1; // 返回正數表示 $a 大於 $b
} elseif ($a < $b) {
return -1; // 返回負數表示 $a 小於 $b
} else {
return 0; // 返回 0 表示 $a 等於 $b
}
});
print_r($map); // 輸出: Ds\Map Object ( [0] => Array ( [b] => 1 ) [1] => Array ( [c] => 2 ) [2] => Array ( [a] => 3 ) )
注意:該方法只適用於使用 composer require ds/ds
安裝了 ext-ds
擴充套件的情況下,否則會丟擲 Error
異常。