我需要按详细信息名称“ ASC”排序
我点击了此链接。https://laravel.com/docs/5.4/collections#method-sortby
这是我的调试数据
这是我的代码
$collection = collect($data);
dd($collection);
$sorted = $collection->sortBy(function ($product, $key) {
return count($product['detail']);
});
$sorted->values()->all();
但是显示错误“字符串偏移量'明细'非法”
答案 0 :(得分:0)
下次,请以文本形式而非屏幕截图形式发布代码/ dd结果。谢谢!
这里:
$collection = collect($data);
您的$data
不是一个产品数组,而是一个产品(大概是产品属性的数组)。
因此,发生->sortBy(..)
遍历属性name
和detail
的情况。
因此,在第一次迭代中(您可以通过在dd($product)
内进行sortBy
来看到$product
实际上是这样的:
'Tour Guide Multilingual'
,关键是:
'product'
由于尝试访问字符串的索引['detail']
(因此,“非法 string 偏移量'detail'”),您会收到错误消息
所以这是一个逻辑问题。我不确定您如何获得$data
或预期的结果,但是您的$data
中只有1种产品,因此没有任何排序依据
答案 1 :(得分:0)
尝试一下。
$collection = collect($data);
$sorted = $collection->sortBy(function ($product, $key) {
return $product['name'];
});
$sorted->values()->all();