使用laravel嵌套集合

时间:2016-07-30 05:51:32

标签: php laravel collections

我在集合中有集合,看起来像这样:

=> [
 [
"id" => 3,
   "parent_id" => 2,
    "depth" => 1,
   "children" => [
     [
       "id" => 4,
       "parent_id" => 3,
       "depth" => 2,
       "children" => [
         [
           "id" => 5,
           "parent_id" => 4,
           "depth" => 3,
           "children" => [
             [
  [...]

我该如何处理? $ result->计数();

此返回1

它表现得像只有一个集合,所以我甚至不能使用地图或每个过滤它。我需要过滤最大深度为4。

我试过拒绝(),但它也没有用。

我可以将它转换为数组,但我想使用漂亮的收集方法......

2 个答案:

答案 0 :(得分:0)

你需要遍历你的收藏品

$result->children->map(function ($item) {
    // do some stuff with $item or you can no map through its children
    $item->children->map(function ($nestedItem) {
        // do some stuff with $nestedItem etc//
    });
});

另一种方法是使用foreach语句,但

答案 1 :(得分:0)

首先将集合转换为Array,然后使用

 count($result, COUNT_RECURSIVE)