Skip to content
Snippets Groups Projects
PrepareMenuRepository.php 1.01 KiB
Newer Older
Akex's avatar
Akex committed
<?php
Akex's avatar
Akex committed

namespace App\Repository;
Akex's avatar
Akex committed
/**
 * Сгруппировать подразедлы в верхние разделы меню
 * Дочерние элементы поместить в массив родителя с ключом submenu
 * Значение под ключом depth определяет уровень раздела
 * Массив $aMenu всегда начинается с элемента depth = 0, все последующие элементы с depth = 1 являются его дочерними
 * элементами
 * @param array $aMenu
 * @return array
 */
function prepareMenu(array $aMenu): array {
    $returnableAMenu = [];
    foreach ($aMenu as $menuPoint){
        $depth = $menuPoint["depth"];
        if ($depth === 1){
            $tempArray = array_pop($returnableAMenu);
            $tempArray['submenu'][] = $menuPoint;
            $returnableAMenu[] = $tempArray;
        }
        else{
            $returnableAMenu[] = $menuPoint;
        }

    }

    return $returnableAMenu;
}