眉若轻烟的BLOG 订阅
相关博文
内容读取中…
推荐博文
内容读取中…
谁看过这篇博文
内容读取中…
字体大小: 正文
usort 排序函数 (2008-04-09 22:48:05)
 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";
}
?>

本例将显示:

0: 1
1: 2
2: 3
3: 5
4: 6
使用对象的成员函数的 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";
}
?>

本例将显示:

b
c
d
评论(0)| 阅读 (0) | 收藏 (0) | 分享 | 打印 | 举报
前一篇:数据库表修复
后一篇:array_merge_recursive
发表评论
匿名评论(无需注册)
验证码:看不清楚数字吗?点击这里再试试。
新浪BLOG意见反馈留言板 不良信息反馈 电话:95105670 提示音后按2键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有