17.PHP数组之 usort() 和 uasort() 函数
bool usort ( array
&$array , callable $cmp_function )本函数将用用户自定义的比较函数对一个数组中的值进行排序。如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。
Note: 此函数为 array 中的元素赋与新的键名。这将删除原有的键名,而不是仅仅将键名重新排序。
第二个参数:int callback ( mixed $a , mixed $b )
在 $a 小于,等于或大于 $b 时,该比较函数必须相应地返回一个小于,等于或大于 0 的整数。
例子:
<?php
function cmp ( $a , $b )
{
return strcmp ( $a [ "fruit" ], $b [ "fruit" ]);
}
$fruits [ 0 ][ "fruit" ] = "lemons" ;
$fruits [ 1 ][ "fruit" ] = "apples" ;
$fruits [ 2 ][ "fruit" ] = "grapes" ;
usort ( $fruits , "cmp" );
while (list( $key , $value ) = each ( $fruits )) {
echo '$fruits [ '.$key.' ] :'. $value [ "fruit" ]."<br>";
}
当排序多维数组时, $a 和 $b 包含到数组第一个索引的引用。
以上例程会输出:
$fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons
而uasort() 则会保留原来的键值关系,其余相同

浙公网安备 33010602011771号