【问题标题】:PHP - Issue with outputting multidimensional array into an HTML tablePHP - 将多维数组输出到 HTML 表中的问题
【发布时间】:2015-02-26 08:29:08
【问题描述】:

我正在尝试编写一个 php 代码来使用多维数组中的示例信息,并将该信息输出到一个 html 表中。

我可以输出信息,但是格式不对,感觉好像出了点小问题,需要多一双眼睛。

非常感谢任何帮助或建议。

我的 PHP 代码:

<html>

<head>
</head>

<body>

<table border="1px">

<?php

$karma_score = Array( "UserID" => Array(1,2,3,4),
                      "NameID" => Array('Doe','Smith','Chan','Zee'),
                      "Karma" => Array(45,123,1,15),
                      "LastLogin" => Array("2012-08-30","2012-09-02","2011-12-23","2012-07-01"));

    echo "<tr>";
foreach($karma_score as $key => $value){
    echo "<td>" . $key . "</td>";
}
echo "</tr>";

echo "<tr>";
foreach($karma_score as $key=> $value){
    echo "<td>";
    foreach($value as $something){
        echo $something;
    }
    echo "</td>";
}
echo "</tr>";



?>

</table>

</body>

</html>

【问题讨论】:

  • 你应该只有一个foreach($karma_score...
  • 这是一个错误,哎呀忘了把它拿出来......我想知道这是否是导致问题的原因。 @达贡
  • @Dagon 等等,不,我刚刚意识到我需要将密钥作为表头输出。这是作业的一部分。
  • @Dagon 我的桌子的钥匙必须在上面

标签: php


【解决方案1】:

在我的评论中,或者相反

<html>

<head>
</head>

<body>

<table border="1px">

<?php

$karma_score = Array( "UserID" => Array(1,2,3,4),
                      "NameID" => Array('Doe','Smith','Chan','Zee'),
                      "Karma" => Array(45,123,1,15),
                      "LastLogin" => Array("2012-08-30","2012-09-02","2011-12-23","2012-07-01"));

echo '<tr>';
foreach(array_keys($karma_score) as $head){
echo '<th>'.$head.'</th>';
}
echo '</tr>';
foreach($karma_score['UserID'] as $key=> $value){
    echo "<tr>";


        echo '<td>'.$karma_score['UserID'][$key].'</td>';
        echo '<td>'.$karma_score['NameID'][$key].'</td>';
        echo '<td>'.$karma_score['Karma'][$key].'</td>';
        echo '<td>'.$karma_score['LastLogin'][$key].'</td>';


echo "</tr>";
}




?>

</table>

</body>

</html>

演示:http://codepad.viper-7.com/ZFj6gb

【讨论】:

    【解决方案2】:

    应该可以的:

    <html>
    <body>
    <table>
        <?php
    
        $karma_score = Array( "UserID" => Array(1,2,3,4),
                              "NameID" => Array('Doe','Smith','Chan','Zee'),
                              "Karma" => Array(45,123,1,15),
                              "LastLogin" => Array("2012-08-30","2012-09-02","2011-12-23","2012-07-01"));
    
    
    
        echo "<tr>"; 
        foreach($karma_score as $key => $value){
            echo "<th>" . $key . "</th>"; //use "th" instead for the header
        }
        echo "</tr>";
    
        foreach($karma_score as $key=> $value){
            echo "<tr>"; //a row for each key
            foreach($value as $something){ //foreach row print all the columns
                echo "<td>";
                echo $something;
                echo "</td>";
            }
            echo "</tr>";
        }
    
        ?>
    </table>
    </body>
    </html>
    

    【讨论】:

    • 最上面一行的key是正确的,但是应该垂直输出的时候却是水平输出。例如,当标题行下方的行中应该是 1 doe 45 日期时,它会变为 1 2 3 4。
    • 并且th的使用不正确,它代替td而不是tr
    猜你喜欢
    • 2011-01-28
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    相关资源
    最近更新 更多