php - 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();
解决方案
如果数据字段中存储的数据是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()
推荐阅读
- github-for-windows - 删除 Git Hub 相关文件
- javascript - 无法将 HTML 转换为 editorState
- javascript - 动态改变视频源导致闪烁
- python-3.x - 为什么 Pandas 的“应用”功能在新添加的列中引入了 NULL 值?
- angular - 为什么 Angular BehaviorSubject 会记住退订后传递的最后一个对象?
- javascript - 禁用提交按钮,如果所有/某些输入,textarea 和单选按钮为空
- html - SVG 标头裁剪位图 - 但具有响应性
- c++ - 如何将 boost 库添加到 Xcode 11?C++
- rust - 将可变数组引用传递给也接受可变数组引用的函数时,为什么没有说明 &mut?
- python - Python 等价于 Javascript querySelector