Задать вопрос
@FrelFrloich

Как написать цикл foreach без повторений блока разметки html?

Доброго дня, подскажите как можно написать цикл без повторений блока html. Это нужно для того что бы цикл не выдавал пустую разметку html в данном случаем table, tr это пустые теги, они мне нужны только в том случае если foreach выдает результат.

function build_table($array){

    $html = '<table>';
     foreach( $array as $key=>$value){
        $html .= '<tr>';
        foreach($value as $key2=>$value2){
            $html .= '<td>' . htmlspecialchars($value2) . '</td>';
        }
        $html .= '</tr>';
    }
    $html .= '</table>';
    return $html;
}
  • Вопрос задан
  • 128 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Stepik
    Язык программирования PHP
    1 неделя
    Далее
Решения вопроса 2
function build_table($array){
    $html = '';
    if (count($array)) {
        foreach( $array as $key=>$value){
            if (count($value)) {
                $html.= '<tr><td>'.implode('</td><td>',$value).'</td></tr>';
            }
        }
        if ($html != '') $html = '<table>'.$html.'</table>';
    }
    return $html;
}

Не проверял, но идея думаю понятна.
Ответ написан
Adamos
@Adamos
function build_table($array){
    $html = '';
     foreach( $array as $key=>$value){
        $html .= '<tr>';
        foreach($value as $key2=>$value2){
            $html .= '<td>' . htmlspecialchars($value2) . '</td>';
        }
        $html .= '</tr>';
    }
    return $html? '<table>' . $html . '</table>' : '';
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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