usort --
使用用户自定义的比较函数对数组中的值进行排序
说明
void usort ( array
array, callback cmp_function)
usort的回调函数cmd接受两个参数,这两个参数由usort内部提供
回调函数可能的返回值是
0 不做操作
-1 将$a所在单元先前移动
1 将$b所在单元先前移动
也就是说当$a>$b时,返回1,就是做升序排列;返回-1,就是做降序排列
<?php function cmp
($a, $b) {
if
($a == $b) return 0;
return
($a < $b) ? -1 : 1;
}
$a = array (3, 2, 5, 6, 1);
usort ($a, "cmp");
while (list ($key, $value) = each ($a)) {
echo
"$key: $value\n";
} ?> |
本例将显示:
使用对象的成员函数的 usort() 例子
<?php class
TestObj {
var
$name;
function
TestObj($name)
{
$this->name
= $name;
}
function
cmp_obj($a, $b)
{
$al
= strtolower($a->name);
$bl
= strtolower($b->name);
if
($al == $bl) return 0;
return
($al > $bl) ? +1 : -1;
}
}
$a[] = new TestObj("c"); $a[] = new
TestObj("b"); $a[] = new
TestObj("d");
usort($a, array ("TestObj",
"cmp_obj"));
foreach ($a as $item) {
print
$item->name."\n";
} ?> |
本例将显示: