【函数功能】
该函数通过用户自定义的比较函数对数组进行排序,不保留原数组的索引关系。
【函数语法】
usort (array &$array, $value_compare_func)
【参数说明】
$array |
必需。规定要进行排序的数组。 |
$value_compare_func |
可选。定义可调用比较函数的字符串。如果第一个参数小于等于或大于第二个参数,那么比较函数必须返回一个小于等于或大于 0 的整数。 |
【演示程序】
<?php
/**
* usort (array &$array, $value_compare_func)
* **/
function compare_func($a,$b){
if($a == $b)return 0;
return ($a > $b ? -1 : 1);
}
$array = array('site_name'=>'PHP1234','site_url'=>'php1234.cn','site_auth'=>'明礼馨德','ext'=>'明礼馨德','明礼馨德','a',1,'B','A','b');
usort($array,"compare_func");
print_r($array);
?>
【输出结果】
Array ( [0] => 1 [1] => 明礼馨德 [2] => 明礼馨德 [3] => 明礼馨德 [4] => php1234.cn [5] => b [6] => a [7] => PHP1234 [8] => B [9] => A )
【特别注意】
1.如果两个元素比较结果相同,则它们在排序后的数组中的顺序未经定义。到 PHP 4.0.6 之前,用户自定义函数将保留这些元素的原有顺序。但是由于在 4.1.0 中引进了新的排序算法,结果将不是这样了,因为对此没有一个有效的解决方案。
2.该函数为 array 中的元素赋予新的数字键名,会删除原有的键名。
3.若成功则返回 TRUE,若失败则返回 FALSE。
4.PHP 版本:4+。
【原版定义】
/**
* Sort an array by values using a user-defined comparison function
* @link http://www.php.net/manual/en/function.usort.php
* @param array array <p>
* The input array.
* </p>
* @param value_compare_func callable <p>
* The comparison function must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.
* </p>
* &callback.cmp;
* <p>
* Returning non-integer values from the comparison
* function, such as float, will result in an internal cast to
* integer of the callback's return value. So values such as
* 0.99 and 0.1 will both be cast to an integer value of 0, which will
* compare such values as equal.
* </p>
* @return bool Returns true on success or false on failure.
*/
转载请注明出处:php1234.cn ,原文地址:http://www.php1234.cn/a/functions/2017/0223/187.html