Если предположить, что $rows
- это структура в нижней части вашего вопроса (массив массивов), то:
foreach ($rows as $row) {
echo <<<END
$row[title]<br>
$row[author]<br>
$row[post]<br>
$row[entry_date]<br>
END;
foreach ($row['comments'] as $comment) {
echo <<<END
$comment[comments]<br>
$comment[commentor]<br>
$comment[comment_date]<br>
END;
}
}
Я настоятельно рекомендую вам выбирать значимые имена (например, $comment
и $row
), а не бессмысленные имена, такие как $val
и $val2
, так как они могут вызвать путаницу.
Также я использовал heredoc синтаксис в пересмотренной версии, так как я склонен думать, что это может сделать вещи более читабельными, но это необязательно. Лучшая альтернатива может быть:
<?php foreach ($rows as $row): ?>
<?php echo $row['title'] ?><br>
<?php echo $row['post'] ?><br>
<?php echo $row['entry_date'] ?><br>
<?php foreach ($row['comments'] as $comment): ?>
<?php echo $comment['comments'] ?><br>
<?php echo $comment['commentor'] ?><br>
<?php echo $comment['comment_date'] ?><br>
<?php endforeach; ?>
<?php endforeach; ?>
, что может быть полезно, если у вас много HTML-кода. Вышеуказанное переключено на использование альтернативных структур управления , что является необязательным, но часто считается более читабельным в коде этого типа.
Наконец, вы можете короткие теги PHP , что некоторым людям не нравится (либо потому, что они могут быть отключены, либо они взаимодействуют с инструкциями обработки XML), но я обычно предпочитаю:
<? foreach ($rows as $row): ?>
<?= $row['title'] ?><br>
<?= $row['post'] ?><br>
<?= $row['entry_date'] ?><br>
<? foreach ($row['comments'] as $comment): ?>
<?= $comment['comments'] ?><br>
<?= $comment['commentor'] ?><br>
<?= $comment['comment_date'] ?><br>
<? endforeach; ?>
<? endforeach; ?>