@kat-vetal

Foreach в foreach?

Добрый день. Помогите разобраться.
Пытаюсь вывести меню
<ul>
            <? foreach ($menu as $key => $item) : ?>
            <li>
            <? foreach ($alias as $src) : ?>
                    <? endforeach;?>
                    <a href="<?=$src?>"><?=$item ?></a></li>
            <?endforeach;?>
            </ul>

но в итоге получается так
<ul>
    <li>
        <a href="корень"></a>
        <a href="alias-1"></a>
        <a href="alias-2"></a>
        <a href="alias-3"></a>
        <a href="alias-4">корень</a>
    </li>

    <li>
    <a href="корень"></a>
    <a href="alias-1"></a>
    <a href="alias-2"></a>
    <a href="alias-3"></a>
    <a href="alias-4">alias-1</a>
    </li>

    <li>
        <a href="корень"></a>
        <a href="alias-1"></a>
        <a href="alias-2"></a>
        <a href="alias-3"></a>
        <a href="alias-4">alias-2</a>
    </li>
                            
    <li>
        <a href="корень"></a>
        <a href="alias-1"></a>
        <a href="alias-2"></a>
        <a href="alias-3"></a>
        <a href="alias-4">alias-3</a>
    </li>
    <li>
        <a href="корень"></a>
        <a href="alias-1"></a>
        <a href="alias-2"></a>
        <a href="alias-3"></a>
        <a href="alias-4">alias-4</a>
    </li>
</ul>

Как добиться чтобы меню выводилось корректно
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
@kat-vetal Автор вопроса
В общем нашел более элегантное решение
Использовал метод array_combine
$list = array_combine($src, $menu);
и вывод получился такой
<ul>
            <? foreach ($menu as $key => $item) : ?>
            <li>
                <a href="<?=$key?>"><?=$item ?></a>
            </li>
            <?endforeach;?>
            </ul>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Gorky
@Gorky
Веб-разработчик
Вывод ссылки то надо запихнуть во второй форейдж.
<ul>
    <? foreach ($menu as $key => $item) : ?>
    <li>
    <? foreach ($alias as $src) : ?>
        <a href="<?=$src?>"><?=$item ?></a>
    <? endforeach;?>
    </li>
    <?endforeach;?>
</ul>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы