对象类型数组的反向排序

时间:2017-07-03 12:12:54

标签: php sorting

是他们的任何直接方式(不使用for或foreach循环)使用它我们可以反向排序对象类型的数组。参考内容代码是:

Array
(
    [0] => stdClass Object
        (
            [Date] => 20170820
        )

    [1] => stdClass Object
        (
            [Date] => 20170817
        )

    [2] => stdClass Object
        (
            [Date] => 20170711
        )

    [3] => stdClass Object
        (
            [Date] => 20170710
        )

)

4 个答案:

答案 0 :(得分:1)

您可以简单地使用usort()并使用您自己的逻辑进行排序。这会将最早的日期放在最前面:

usort($array, function($a, $b) {
   return $a->Date > $b->Date ? +1 : -1;
});

或者如果你想要相反的顺序,交换+ 1 / -1;

答案 1 :(得分:0)

使用krsort($array)以相反的顺序对数组进行排序。 使用rsort($array)按照与值相反的顺序对数组进行排序。

答案 2 :(得分:0)

试试这个,这有助于您确定

//Example with array $a
$a = array(array('date'=>20170820),array('date'=>20170817),array('date'=>20170711),array('date'=>20170710));
$a = json_decode(json_encode($a));

usort($a, function($x,$y){ return $x->date - $y->date; });
print_r($a);

答案 3 :(得分:0)

你可以这样做:

array_multisort($array,SORT_DESC,array_map(function ($v) { return $v->date; },$array));

实施例: http://sandbox.onlinephpfunctions.com/code/21b33f4d8b2bfb80fb02750693539b19060b5c86