Задать вопрос
@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;
}
  • Вопрос задан
  • 123 просмотра
Подписаться 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>' : '';
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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