【发布时间】:2019-03-22 09:12:16
【问题描述】:
我有一个集合,我按特定键分组
$collection = Model::all()->groupBy('section_id');
这给我留下了一个包含多个根节点(部分)的集合,每个节点包含多个项目的集合。
print_r($collection->toArray());
Array
(
[section_1] => Array
(
[0] => stdClass Object
(
[section_id] => section_1
...
)
[1] => stdClass Object
(
[section_id] => section_1
...
)
[2] => stdClass Object
(
[section_id] => section_1
...
)
[0] => stdClass Object
(
[section_id] => section_1
...
)
)
[section_2] => Array
(
[0] => stdClass Object
(
[section_id] => section_2
...
)
[1] => stdClass Object
(
[section_id] => section_2
...
)
[2] => stdClass Object
(
[section_id] => section_2
...
)
[0] => stdClass Object
(
[section_id] => section_2
...
)
)
)
这很好,但我现在想做的是将每个部分中的项目减少到 2 个。
我尝试了以下方法,但这似乎不起作用。
$collection->map(function($section)
{
$reduced_section = $section->slice(0,2);
return $reduced_section;
});
这是正确的,还是有更好的(可行的)方法来实现这一点?
谢谢
【问题讨论】:
-
你试过的代码结果如何?
-
没有效果。每个部分仍然包含所有嵌套项