Реализуются ли foreach в альтернативном синтаксисе как стек? - PullRequest
0 голосов
/ 05 апреля 2020

У меня проблема с размещением foreach внутри foreach в HTML / PHP. Мне интересно, реализованы ли foreach в альтернативной структуре как стек?

Мой код можно найти ниже.

У меня есть этот массив, который содержит данные:

 $tasks = [
    [
        "category" => "to do",
        "items" => [
            [
                "title" => "Buy fireworks for New Year",
                "description" => "Make sure they are not dangerous.",
                "id" => 1
            ]
        ]
    ],
];

А вот мой HTML, в котором я пытаюсь:

  1. Показать название категории.

  2. L oop через задачи в переменной $ task, чтобы поместить элементы внутрь <li> внутри <ul>.

    <div class="task-container"> <h2 class="task-container__title"><?=$taskGroup['category']?></h2> <? if (count($taskGroup['items'])) : ?> <ul class="task-container__items"> <?php foreach ($taskGroup['items'] as $ta) : ?> <li class="task-container__item"> <div class="task-container__card"> <p class="task-container__card-title"> <?=$ta['title']?> </p> <div class="task-container__card-promote"></div> </div> </li> <? endforeach; ?> </ul> <? endif; ?> </div>

Как видите, я цикл по категориям в переменной $ tasks. Затем для каждого $ элементов в категории я хочу провести через них l oop и добавить их как <li> элементов. Тем не менее, я всегда получаю сообщение об ошибке:

Parse error: syntax error, unexpected end of file in ...

, когда я добавляю второй foreach в первый foreach.

Я что-то не так делаю? Или вложение в foreach внутри foreach запрещено в PHP?

1 Ответ

0 голосов
/ 05 апреля 2020

Старайтесь никогда не использовать <? для запуска PHP сценария, вместо этого используйте <?php. Какой бы «спагетти-код» он ни был, это PHP, так что разберитесь с ним, хахаха… Кроме того, вы должны были пояснить, что $taskGroup в основном $tasks[0] в этом примере

Вот код:

<?php 
 $tasks = [
    [
        "category" => "to do",
        "items" => [
            [
                "title" => "Buy fireworks for New Year",
                "description" => "Make sure they are not dangerous.",
                "id" => 1
            ]
        ]
    ],
];
$taskGroup = $tasks[0]

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div class="task-container">
        <h2 class="task-container__title"><?= $taskGroup['category'] ?></h2>
        <?php if (count($taskGroup['items'])): ?>
            <ul class="task-container__items">
                <?php foreach ($taskGroup['items'] as $ta): ?>
                    <li class="task-container__item">
                    <div class="task-container__card">
                        <p class="task-container__card-title">
                            <?=$ta['title']?>
                        </p>
                        <div class="task-container__card-promote"></div>
                    </div>
                </li>
                <?php endforeach; ?>
            </ul>
        <?php endif; ?>
    </div>
</body>
</html>
...