将多维数组回显到多个HTML表行中



我有一个查询,我正在运行,它将输出一个未知数量的结果。我想在一个5列的表中显示这些结果。所以我需要数组打印到第六个结果,然后开始一个新的行。

我尝试的方法是将原始数组分成5个块。

$display=array_chunk($row_Classrooms,5);

给我一个这样的数组

  Array ( 
      [0] => Array ( 
            [0] => Array ( 
                  [id_room] => 1 
                  [Name] => Classroom 1 
                  [class] => Yes 
                  ) 
            [1] => Array ( 
                  [id_room] => 5 
                  [Name] => Classroom 2 
                  [class] => Yes 
                  ) 
            [2] => Array ( 
                  [id_room] => 6 
                  [Name] => Classroom 3 
                  [class] => Yes 
                  ) 
            [3] => Array ( 
                  [id_room] => 7 
                  [Name] => Classroom 4 
                  [class] => Yes  
                  ) 
            [4] => Array ( 
                 [id_room] => 8 
                 [Name] => Classroom 5 
                 [class] => Yes 
                 ) 
            ) 
     [1] => Array ( 
           [0] => Array ( 
                  [id_room] => 9 
                  [Name] => Classroom 6 
                  [class] => Yes 
                  ) 
             ) 
   ) 

然后我尝试用一对while循环来回显它,就像这样。

while ($rows = $display) {
                echo '<tr>';
                    while ($class = $rows) {
                        echo'<td>'.$class['name'].'<br>
                            <input name="check'.$i.' type="checkbox" value="'.$class['id_room'].'></td>';
                            $i++;
                    }
                echo '</tr>';
            }

当我运行这个时,它显然陷入了一个永不结束的循环,因为没有显示任何内容,但浏览器只是不断消耗越来越多的内存:)

while语句是错误的。看看这里-在您的while -语句中,您总是分配完整的$display -而不是一个条目。

您可以尝试使用while(($rows = array_shift($display)) !== false) -它将始终获得第一个数组项,直到没有更多的项。

第二个while语句也是同样的情况

我最终将while循环替换为foreach循环,从而解决了问题。

    foreach ($display as $rows) {
            echo '<tr class="popup">';
                foreach($rows as $class) {
                    if(isset($row_Rego)){
                        $exist=NULL;
                        $exist=array_search($class['id_room'], array_column($row_Rego, 'id_room'));
                    }

相关内容

  • 没有找到相关文章

最新更新