Задать вопрос
@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 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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>' : '';
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽