免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2869 | 回复: 2
打印 上一主题 下一主题

数组是对象的排序问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-06 16:00 |只看该作者 |倒序浏览
大家好

我在做一个元素为object的数组的排序。 代码如下:
class NumInCity
{
        var $name;
        var $num;
        var $percentage;
       
        function __construct($name, $num)
        {
                $this->name = $name;
                $this->num = $numincity;
                $this->percentage = 0;
        }
       
        function setpercentage($percentage)
        {
                $this->percentage = $percentage;
        }
       
        function getpercentage()
        {
                return $this->percentage;
        }
       
        function getcityname()
        {
                return $this->name;
        }
       
        function getnum()
        {
                return $this->num;
        }
       
        static function cmp($numincity1, $numincity2)
        {
                if($numincity1->num == $numincity2->num)
                {
                        return 0;
                }
                return $numincity1->num < $numincity2->num ? -1 : 1;
        }
}

然后我以这个class建立了数组a并写了如下代码:
usort($a, array ("NumInCity", "cmp"));
for($i = 0; $i < count($a); $i++)
{
        echo $a[$i]->getname()."     ".$a[$i]->getnum()."<br/>";
}

发现只是a的num排序了,name并没有排序。不知为何?

论坛徽章:
0
2 [报告]
发表于 2009-07-14 02:04 |只看该作者
uasort

论坛徽章:
0
3 [报告]
发表于 2009-07-14 02:28 |只看该作者
cmp里就是针对num进行了排序处理,何来name排序
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP