reduce(function ($count, $item) use ($childrenKey) { $itemCount = 1; if (isset($item[$childrenKey]) && is_array($item[$childrenKey])) { $itemCount += collect($item[$childrenKey])->countNested($childrenKey); } return $count + $itemCount; }, 0); }); } }