【问题标题】:Better Solution for making a HTML table outta multidimensional array使 HTML 表格脱离多维数组的更好解决方案
【发布时间】:2018-05-15 21:46:08
【问题描述】:
 /**
 * 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 表格。

我尝试了很多,也和我哥一起工作过,但是他看不懂代码,所以……

我的解决方案需要更简洁的代码。有什么建议吗?

这是当前表格的样子:

【问题讨论】:

  • 代码是否存在实际问题,或者您只是希望它更短?它对我来说已经相当简洁了,根据我的经验,构建表格看起来像这样。你当然可以让它更短,但你会牺牲可读性。
  • 其实没有问题,我只是想看看一个有经验的程序员的解决方案如何变得更好并从中学习。
  • 你明白上面的代码在做什么吗?
  • 我不知道 CodeReview,但感谢大家的宝贵时间。如果迁移到 CodeReview 工作,我想要这个。

标签: php html html-table


【解决方案1】:

代码运行良好,并且没有那么长,所以我真的认为没有必要缩短它。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2013-07-21
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多