usort()可以为一个对象工作吗?

时间:2013-03-18 22:51:16

标签: php

我收到此错误:

  

ErrorException:警告:usort()期望参数1为数组,给定对象

我将SQL查询的结果对象传递给usort:

usort($results, array($this, "sortDistance"));

我的排序功能:

private function sortDistance ($first, $next)
{
    $d1 = $this->searchDistance[$first->zip];
    $d2 = $this->searchDistance[$next->zip];

    if ($d1 == $d2) {
        return 0;
    }
    return ($d1 > $d2) ? +1 : -1;
}

是否有其他方法可以根据对象的属性对对象进行排序?

1 个答案:

答案 0 :(得分:0)

您可以从结果集中创建一个对象数组,其中对象具有您需要排序的属性。然后使用成员函数作为usort的回调