【问题标题】:usort not working for laravel multidimensional arraysusort 不适用于 laravel 多维数组
【发布时间】:2019-02-08 11:50:49
【问题描述】:

我有一个数组

Illuminate\Support\Collection Object
(
    [items:protected] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 79
                    [name] => shelin
                    [status] => 0
                )

            [1] => stdClass Object
                (
                    [id] => 80
                    [name] => shanu
                    [status] => 2
                )

            [2] => stdClass Object
                (
                    [id] => 81
                    [name] => linto
                    [status] => 2
                )

            [3] => stdClass Object
                (
                    [id] => 82
                    [name] => joseph
                    [status] => 0
                )

        )

)

我想按状态描述顺序重新排列这个数组 我试试

usort($usersdetailsA, function($a, $b) {
    return $a->status <=> $b->status;
});

我遇到了类似的错误

usort() 期望参数 1 是数组,给定对象

我试过了 $usersdetailsA = $this->$usersdetailsA->getValues(); 我遇到了类似的错误

未定义的属性: TCG\Voyager\Http\Controllers\Users::$[{"id":79,"name":"shelin","status":0},{"id":80,"name":"shanu", "status":"2"},{"id":81,"name":"linto","status":"2"},{"id":82,"name":"joseph","status ":0}]

预期输出

Illuminate\Support\Collection Object
    (
        [items:protected] => Array
            (
                [0] => stdClass Object
                    (
                        [id] => 80
                        [name] => shanu
                        [status] => 2
                    )
 [1] => stdClass Object
                    (
                        [id] => 81
                        [name] => linto
                        [status] => 2
                    )

                [2] => stdClass Object
                    (
                        [id] => 79
                        [name] => shelin
                        [status] => 0
                    )



                [3] => stdClass Object
                    (
                        [id] => 82
                        [name] => joseph
                        [status] => 0
                    )
Any help would be appreciated.Thanks in advance

【问题讨论】:

    标签: php arrays laravel-5.3 usort


    【解决方案1】:

    您可以通过给定键使用sort 方法对collection 进行排序:

    $sorted = $collection->sortByDesc('status');
    

    【讨论】:

      猜你喜欢
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-13
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多