php - usort 不适用于 laravel 多维数组

标签 php arrays laravel-5.3 usort

我有一个数组

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() expects parameter 1 to be array, object given

我试过了 $usersdetailsA = $this->$usersdetailsA->getValues(); 我收到一个错误,例如

Undefined property: 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

最佳答案

您可以对 collection 进行排序与 sort给定键的方法:

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

关于php - usort 不适用于 laravel 多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52149459/

相关文章:

arrays - 获取一些数组而不循环

php - 多对多表SQL选择问题

php - move_uploaded_file() 给出所有者/组错误

Java 动态数组

javascript - Node/Express.js - 数组元素正在消失

laravel - 包含 Vue.js v-if 和 v-for 指令的 HTML 标签在加载时闪烁

laravel - 在 Laravel 中更改分页箭头

php - laravel 配置/数据库中 strict 的用途是什么?

php - 包含逗号的 orderby price meta_value - wordpress

php - CodeIgniter $this->input->get() 不工作