все, что мне нужно понять, поэтому я всегда получаю сгенерированный массив с индексом 0, если я объявляю значение, которое я хочу, чтобы этот результат
Array
(
[0] => Array
(
[label] => Prima categoria,
[url] => Array
(
[0] => categorie/prima-categoria
)
)
[1] => Array
(
[label] => Seconda
[url] => Array
(
[0] => categorie/seconda
)
[items] => Array
(
[label] => Seconda
[url] => Array
(
[0] => categorie/seconda
)
)
)
)
но сейчас:
Array
(
[0] => Array
(
[label] => Prima categoria,
[url] => Array
(
[0] => categorie/prima-categoria
)
)
[1] => Array
(
[label] => Seconda
[url] => Array
(
[0] => categorie/seconda
)
// this is the problem --- why 0??
[0] => Array
(
[items] => Array
(
[label] => Seconda
[url] => Array
(
[0] => categorie/seconda
)
)
)
)
)
функция, которую я пытаюсь реализовать
function getItems() {
$items = [];
foreach (getLabelName() as $key) {
$url = str_replace(' ', '-', $key->name);
$subMenu = [];
if (isset($key->id_sub_cat)) {
$subMenu['items'] = ['label' => ucfirst($key->name), 'url' => ['category/' . $url . '']];
}
$items[] = ['label' => ucfirst($key->name), 'url' => ['category/' . $url . ''], $subMenu];
}
return $items;
}
Надеюсь, вы поймете мое объяснение.
Из-за этого:
$items[] = ['label' => ucfirst($key->name), 'url' => ['category/' . $url . ''], $subMenu];
Что вы должны сделать, это
function getItems() {
$items = [];
foreach (getLabelName() as $key) {
$url = str_replace(' ', '-', $key->name);
$subMenu = [];
if (isset($key->id_sub_cat)) {
$subMenu[] = ['label' => ucfirst($key->name), 'url' => ['category/' . $url . '']];
}
$items[] = ['label' => ucfirst($key->name), 'url' => ['category/' . $url . ''], 'items' => $subMenu];
}
return $items;
}