我想用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?
我希望有人可以帮助我。
答案 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>";
}