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() 则会保留原来的键值关系,其余相同

posted @ 2016-05-02 19:49  MatthewBlog  阅读(389)  评论(0)    收藏  举报

页脚