从嵌套的php foreach循环创建表

时间:2015-11-02 16:28:45

标签: php

我试图从嵌套的foreach循环创建一个简单的html表。实际数据将存储在我的数据库中。 我希望桌子看起来像:

---------------------
1  |  A  |  red     |
---------------------
2  |  B  |  blue    |
---------------------
3  |  C  |  yellow  |
---------------------
4  |  D  |  orange  |
---------------------


$values1 = "1,2,3,4";
$values2 = "A,B,C,D";
$values3 = "red,blue,yellow,orange";

$var1 = explode(',', $values1);
$var2 = explode(',', $values2);
$var3 = explode(',', $values3);

echo '<table>';

    foreach ($var1 as $row1) {
        echo '<tr>';
        echo '<td>'.$row1.'</td>';

        foreach ($var2 as $row2) {
            echo '<td>'.$row2.'</td>';
        }
        foreach ($var3 as $row3) {
            echo '<td>'.$row3.'</td>';
        }
        echo '</tr>';
    }

echo '</table>';

3 个答案:

答案 0 :(得分:3)

此代码有效:

<?php
$values1 = "1,2,3,4";
$values2 = "A,B,C,D";
$values3 = "red,blue,yellow,orange";

$var1 = explode(',', $values1);
$var2 = explode(',', $values2);
$var3 = explode(',', $values3);

echo '<table border="1">';
for($i = 0; $i < count($var1); $i++){
    echo '<tr>';
    echo '<td>'.$var1[$i].'</td>';
    echo '<td>'.$var2[$i].'</td>';
    echo '<td>'.$var3[$i].'</td>';
    echo '</tr>';
}


echo '</table>';

答案 1 :(得分:2)

我认为这可以帮到你。将值直接定义为数组,并使用foreach循环表示它们。它更像是mysql_fetch_array表示从数据库中获取的记录的方式。

$values   = [];
$values[] = [1, "A", "red"];
$values[] = [2, "B", "blue"];
$values[] = [3, "C", "yellow"];
$values[] = [4, "D", "orange"];

echo '<table>';
    foreach ($values as $value) {
        echo '<tr>';
        echo '<td>'.$value[0].'</td>';
        echo '<td>'.$value[1].'</td>';
        echo '<td>'.$value[2].'</td>';
        echo '</tr>';
    }
echo '</table>';

答案 2 :(得分:0)

如果您使用$var1作为&#34; base&#34;数组,可以方便检查其他数组是否也包含相同的索引(长度与$var1相同),以避免PHP警告。

foreach ($var1 as $key => $value) {
    echo '<tr>';
    echo '<td>'.$value.'</td>';
    echo '<td>'.(isset($var2[$key]) ? $var2[$key] : '').'</td>';
    echo '<td>'.(isset($var3[$key]) ? $var3[$key] : '').'</td>';
    echo '</tr>';
}