我有一个我正在运行的查询,它会输出未知数量的结果。我想在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>';
}
当我运行它时,显然卡在一个永无止境的循环中,因为没有任何东西显示但是浏览器只是不断地咀嚼越来越多的内存:)
答案 0 :(得分:0)
while
语句错误。查看here - 在您的while
语句中,您始终指定完整的$display
- 而不是一个条目。
您可以尝试使用while(($rows = array_shift($display)) !== false)
- 这将始终获得第一个数组项,直到没有更多项。
第二个while语句中的相同情况。
答案 1 :(得分:0)
我最终用foreach循环替换了while循环,这解决了问题。
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'));
}