我有这个循环遍历数组并将其打印出来。问题是,假设这个数组中有8个元素。如果第5阵列不同意这个 $ scheduleFirstLine [10] [$ sfl] == 1 ,那么就会中断。它没有继续第6和第7项。我该如何解决这个问题?
while ($scheduleFirstLine[10][$sfl] == 1)
{
echo '
<tr>
<td style="color:'.$scheduleFirstLine[8][$sfl].';background-color:'.$scheduleFirstLine[9][$sfl].';">
'.$scheduleFirstLine[1][$sfl].'<br />'.$scheduleSecondLine[1][$sfl].'</td>
<td style="color:'.$scheduleFirstLine[8][$sfl].';background-color:'.$scheduleFirstLine[9][$sfl].';">
'.$scheduleFirstLine[2][$sfl].'<br />'.$scheduleSecondLine[2][$sfl].' </td>
<td style="color:'.$scheduleFirstLine[8][$sfl].';background-color:'.$scheduleFirstLine[9][$sfl].';">
'.$scheduleFirstLine[3][$sfl].'<br />'.$scheduleSecondLine[3][$sfl].' </td>
<td style="color:'.$scheduleFirstLine[8][$sfl].';background-color:'.$scheduleFirstLine[9][$sfl].';">
'.$scheduleFirstLine[4][$sfl].'<br />'.$scheduleSecondLine[4][$sfl].' </td>
<td style="color:'.$scheduleFirstLine[8][$sfl].';background-color:'.$scheduleFirstLine[9][$sfl].';">
'.$scheduleFirstLine[5][$sfl].'<br />'.$scheduleSecondLine[5][$sfl].' </td>
<td style="color:'.$scheduleFirstLine[8][$sfl].';background-color:'.$scheduleFirstLine[9][$sfl].';">
'.$scheduleFirstLine[6][$sfl].'<br />'.$scheduleSecondLine[6][$sfl].' </td>
<td style="color:'.$scheduleFirstLine[8][$sfl].';background-color:'.$scheduleFirstLine[9][$sfl].';">
'.$scheduleFirstLine[7][$sfl].'<br />'.$scheduleSecondLine[7][$sfl].' </td>
</tr>
';
$sfl++;
}
答案 0 :(得分:3)
更改你的while条件并在循环内使用if。
$max = count($scheduleFirstLine[10]);
$sfl = 0;
while ($sfl < $max) {
if ($scheduleFirstLine[10][$sfl] != 1)
continue; // ignore these values
// rest of the code
}
我还建议更改数组的结构。你的看起来像这样:
Array(
Array( // attribute 1
attribute 1 of 1st element,
attribute 1 of 2nd element,
)
Array( // attribute 2
attribute 2 of 1st element,
attribute 2 of 2nd element,
)
...
)
不是将元素分布在所有值上,而是将属于一个元素的所有属性存储在一起,如下所示:
Array(
Array( // 1st element
attribute 1,
attribute 2,
)
Array( // 2nd element
attribute 1,
attribute 2,
)
...
)
然后您可以使用以下代码:
foreach ($array as $element) {
if ($element[10] != 1)
continue;
echo '...'.$element[8].'...'.$element[1].'..';//etc.
}
将来更好地理解和修改,因为正如我所说,属性现在属于一个元素(并且一起存储!)