hasChildren()) { $sum += $item[$index]; } else { $sum += $this->_countSum($index, $item->getChildren()); } } return $sum; } /** * Count collection column average based on column index * * @param string $index * @param \Magento\Framework\Data\Collection $collection * @return float|int */ protected function _countAverage($index, $collection) { $itemsCount = 0; foreach ($collection as $item) { if (!$item->hasChildren()) { $itemsCount += 1; } else { $itemsCount += count($item->getChildren()); } } return $itemsCount ? $this->_countSum($index, $collection) / $itemsCount : $itemsCount; } }