更好的解决方案,使HTML表格超出多维数组

时间:2018-05-15 21:46:09

标签: php html html-table

 /**
 * 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 :(得分:0)

代码运行良好,并且 长,所以我真的不需要让它更短。

但是让有点更短的一种方法是擦除所有注释并将一些回显的字符串合并为一个字符串:

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>";
}