Лучшее решение для создания HTML-таблицы вне многомерного массива - PullRequest
0 голосов
/ 16 мая 2018
 /**
 * Assoziatives Array in einer Tabelle ausgeben mit Bootstrap Styles
 * @param $array Das Array
 * @param $style Optional: Platz für weitere Stylings, default = 'table-hover table-condensed'
 */ 
public function assoc_array_to_table($arr, $style ='table-hover table-condensed'){

    // Neue Tabelle erstellen und Standartstyling vergeben
    echo "<table class='table " . $style . "'>";
    echo "<thead>";
    // Nimmt die Keys vom ersten äußeren Array
    $keys = array_keys($arr[0]); //vorname, nachname, titel, etc...
    // Verteilt die Keys als Überschriften
    foreach($keys as $key){
        echo "<th>". $key ."</th>";
    }
    echo "</thead>";
    echo "<tbody>";
    foreach($arr as $arr2) {
        echo "<tr>";
        foreach($arr2 as $value){
            echo "<td>" . $value . "</td>";
        }
        echo "</tr>";
    }
    echo "</tbody>";
    echo "</table>";
}

Этот код преобразует многомерный массив в таблицу HTML.

Я много пробовал и также работал с моим братом, но он не может понять код, поэтому ...

Мне нужен более чистый и короткий код для моего решения.Любой совет?

Вот как выглядит таблица на данный момент: Current table setup

1 Ответ

0 голосов
/ 16 мая 2018

Код работает хорошо и не такой длины , поэтому я не вижу необходимости делать его короче.

Но есть один способ сделать его aбит короче будет стирать все комментарии и объединять некоторые повторяющиеся строки в одну строку:

public function assoc_array_to_table($arr, $style ='table-hover table-condensed'){
    echo "<table class='table ".$style."'><thead>";
    $keys = array_keys($arr[0]); //vorname, nachname, titel, etc...
    foreach($keys as $key){
        echo "<th>".$key."</th>";
    }
    echo "</thead><tbody>";
    foreach($arr as $arr2) {
        echo "<tr>";
        foreach($arr2 as $value){
            echo "<td>".$value."</td>";
        }
        echo "</tr>";
    }
    echo "</tbody></table>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...