PHP - 按对象属性对对象数组进行排序

时间:2014-07-25 13:04:21

标签: php arrays sorting

我相信你很好。

我想尝试通过对象的score属性对此数组进行排序。下面是数据示例(print_r)。

Array
(
    [0] => stdClass Object
        (
            [device] => 352454530452548
            [reg] => MAM 432A
            [distance] => 823.36
            [ha_points] => 1
            [hb_points] => 235
            [hc_points] => 7.5
            [idling_points] => 111.5
            [speeding_points] => 168
            [total] => 523
            [score] => 68.239895064127
        )

    [1] => stdClass Object
        (
            [device] => 3518020541565265
            [reg] => SM** ***
            [distance] => 851.07
            [ha_points] => 14
            [hb_points] => 136
            [hc_points] => 6
            [idling_points] => 50
            [speeding_points] => 336
            [total] => 542
            [score] => 68.957730856451
        )

得分可以是0到100之间的任何值,我想将它们按降序排序(最大的第一个?)。为了使事情变得更复杂,虽然机会非常小,但可能有两个相同的分数,在这种情况下,哪个是第一个并不重要。

有什么想法吗?

提前致谢,

1 个答案:

答案 0 :(得分:0)

一个简单的usort将完成这项工作。

$arrData = array(/* ... */);
usort($arrData, function($a, $b) {
    return $a->score < $b->score ? 1 : -1;
});