PHP的foreach数组输出到表空单元格

2020年2月29日 21点热度 0条评论 来源: mnaputi

我想为自己做一个简单的教学计划,并卡住我的数组的输出。PHP的foreach数组输出到表空单元格

这里的PHP:

echo '<table><thead><tr><th>Period</th><th>1</th><th>2</th><th>3</th>th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th></tr>'; 
echo '<tr><th>Time</th><th>08:50</th><th>09:40</th><th>10:30</th><th>11:20</th><th>12:10</th><th>13:00</th><th>13:50</th><th>14:40</th><th>13:30</th></tr>'; 
echo '</thead><tbody>'; 
$results = $db->mysql->query("SELECT * FROM schedule"); 
if ($results->num_rows) { 
    while ($row = $results->fetch_assoc()) { 
     $days[$row['day']][$row['period']] = $row['classroom']; 
    } // close days while 

    foreach ($days as $key => $val) { 
     echo '<tr><td>' . $key . 
      '</td>'; 
     foreach ($val as $item) { 
      echo '<td>' . $item . 
       '</td>'; 
     } 
     echo '</tr>'; 
    } 
} 
echo '</tbody></table>'; 

这给了我一个这样的数组:

Array 
(
[Monday] => Array 
    (
     [1] => m5 biology 
     [6] => m5 ict 
     [8] => m6 ict 
    ) 

[Tuesday] => Array 
    (
     [3] => m5 biology 
     [6] => m6 ict 
     [7] => m6 ict 
    ) 

[Wednesday] => Array 
    (
     [1] => m6 biology 
     [2] => m5 ict 
     [7] => m5 biology 
     [8] => m2 ict 
    ) 

[Thursday] => Array 
    (
     [1] => m6 biology 
    ) 

[Friday] => Array 
    (
     [1] => m6 biology 
     [6] => m6 ict 
    ) 

表看起来就像这样:

... 
<tr> 
    <td>Monday</td> 
    <td>m5 biology</td> 
    <td>m5 ict</td> 
    <td>m6 ict</td> 
</tr> 
... 

我想是什么输出包含空闲表单元的空闲表单。在星期一的例子中,只有周期1,6,8的数据,所以它只显示那些单元格。

我怎样才能得到这段代码也输出周期为2,3,4,5,7,9的空单元?就像这样:

... 
<tr> 
    <td>Monday</td> 
    <td>m5 biology</td> 
    <td>&nbsp</td> 
    <td>&nbsp</td> 
    <td>&nbsp</td> 
    <td>&nbsp</td> 
    <td>m5 ict</td> 
    <td>&nbsp</td> 
    <td>m6 ict</td> 
    <td>&nbsp</td> 
</tr> 

我想过的foreach使用if语句,但我想不通,我需要做什么样的关系。

任何援助将不胜感激。


===========解决方案如下:

试试这个

<?php 
$data = array (
    "Monday" => Array 
    (
     1 => "m5 biology", 
     6 => "m5 ict", 
     8 => "m6 ict", 
    ), 

    "Tuesday" => Array 
    (
     3 => "m5 biology", 
     6 => "m6 ict", 
     7 => "m6 ict", 
    ), 

    "Wednesday" => Array 
    (
     1 => "m6 biology", 
     2 => "m5 ict", 
     7 => "m5 biology", 
     8 => "m2 ict", 
    ), 

    "Thursday" => Array 
    (
     1 => "m6 biology", 
    ), 

    "Friday" => Array 
    (
     1 => "m6 biology", 
     6 => "m6 ict", 
    ) 
); 


$table = "<table border = '1'><tr><td>Day</td>"; 
for ($x = 1; $x<8; $x++) { 
    $table .= "<td>Period $x</td>"; 
} 
$table .= "</tr>"; 
foreach ($data as $day => $classes) { 
    $table .= "<tr><td>$day</td>"; 
    for ($x = 1; $x<8; $x++) { 
     if (isset($classes[$x])) { 
      $table .= "<td>" . $classes[$x] . "</td>"; 
     } else { 
      $table .= "<td></td>"; 
     } 
    } 
    $table .= "</tr>"; 
} 
$table .= "</table>"; 
echo $table; 
    原文作者:mnaputi
    原文地址: https://stackoverflow.com/q/30220879
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。