首页 > 解决方案 > Laravel:按数组排序

问题描述

我从以下格式的数据库中获取结果。现在我想按 total_price 列排序。那么我该如何实现呢?

提前致谢

Array
(
    [0] => Array
        (
            [id] => 738644
            [data] => Array
                (
                    [id] => 38
                    [total_price] => 110.50
                )
        )
    [1] => Array
        (
            [id] => 738645
            [data] => Array
                (
                    [id] => 39
                    [total_price] => 120.50
                )
        )

上述输出的查询是

$result = Mymodel::orderBy('data->total_price', 'desc')->get()->toArray();

标签: phplaravelsortingeloquentsql-order-by

解决方案


如果数据字段中存储的数据是json,那么

$result = Mymodel::orderBy('data->total_price', 'desc')->get()->toArray(); 
     

或者你可以使用集合来做到这一点

$result = Mymodel::all();

$sortedList = $result->sortBy('data.total_price',SORT_REGULAR,true);
$sortedList->all()

或升序

$result = Mymodel::all();
$sortedList = $result->sortBy('data.total_price');
$sortedList->all()

推荐阅读