usort() 函式使用用戶自定義的函式對數組排序。
基本介紹
定義和用法,語法,例子,實例,
定義和用法
注釋:如果兩個元素比較結果相同,則它們在排序後的數組中的順序未經定義。到 PHP 4.0.6 之前,用戶自定義函式將保留這些元素的原有順序。但是由於在 4.1.0 中引進了新的排序算法,結果將不是這樣了,因為對此沒有一個有效的解決方案。
注釋:本函式為 array中的元素賦予新的鍵名。這會刪除原有的鍵名。
語法
usort(array,sorttype) |
參數 | 描述 |
array | 必需。規定要排序的數組。 |
function | 必需。用戶自定義的函式。 函式必須設計為返回 -1, 0, 或 1,並應該接受兩個供比較的參數,同時以類似下面這樣的方式來工作: 如果 a = b, 返回 0 如果 a > b, 返回 1 如果 a < b, 返回 -1 |
例子
<?php function my_sort($a, $b) { if ($a == $b) return 0; return ($a > $b) ? -1 : 1; } $arr = array("Peter", "glenn","Cleveland","peter","cleveland", "Glenn"); usort($arr, "my_sort"); print_r ($arr); ?> |
輸出:
Array ( [0] => peter [1] => glenn [2] => cleveland [3] => Peter [4] => Glenn [5] => Cleveland ) |
實例
usort() 對數組排序。
function cmp($a, $b) //用戶自定義回調函式
{
if($a==$b) //如果兩個參數相等
{
return 0; //返回0
}
return($a>$b)?1:-1; //如果第1個參數大於第2個返回1,否則-1
}
$a=array(3,2,5,6,1); //定義一個數組
usort ($a,"cmp"); //使用自定義函式對數組排序
foreach($a as $key=>$value) //循環輸出排序後的鍵值對
{
echo "$key:$valuen";
}