PHP规划板表

时间:2014-09-30 09:06:46

标签: php foreach

我想用PHP制作计划板,我希望它看起来像这样(表格):

Name1 X
名称2
NAME3
NAME4 X
星期一|星期二|星期三

我有2个foreaches,1个用于名称,1个用于数据。

foreach($names) {
    foreach($data) {
        <tr>
        <td> $names </td>
        <td> if data['data'] == 1 { X }</td>
        <td> if data['data'] == 2 { X }</td>
        <td> if data['data'] == 3 { X }</td>
         </tr>
    }
}

但是这段代码重复了这些名字。当我将tr和td $名称放在另一个foreach中时,它会创建比4更多的字段。如何组合这些foreach?

我希望有人可以帮助我。

2 个答案:

答案 0 :(得分:0)

不确定您的数组包含什么,但对于初学者,您输出所有名称值应该是这样的。

现在我们有了数组

$data = array(array("id" => 1, "data" => 0), array("id" => 2, "data" => 1))

你的代码想成为......

<?php
    foreach($names as $key => $value) {
        $d = $data[$key]['data']; ?>
        <tr>
        <td> <?php echo $value; ?> </td>
        <td> <?php if ($d == 1) { echo 'X'; } ?></td>
        <td> <?php if ($d == 2) { echo 'X'; } ?></td>
        <td> <?php if ($d == 3) { echo 'X'; } ?></td>
        </tr><?php
    }

?>

答案 1 :(得分:0)

我认为在这个例子中你需要2个foreach循环,嵌套递归并不是一件坏事,除非你把几个层次的东西嵌套起来并且很难调试。

你可能需要的是这样的东西:

//each row is a name
foreach($names as $name){
    echo "<tr>";//<-- new row
    $x = 1;//counter
    //each data is a column
    foreach($data as $d){
        echo "<td>";//<-- new column
        if($d == $x){// is $d equal to 1,2,3,4,[n]
            echo "X";
        }
        echo "</td>";
        $x++;//increment counter
    }
    echo "</tr>";
}