我可以使用foreach遍历PHP数组,但不能使用for循环:
这不起作用:
for($j = 0; $j < sizeof($jobsFilterA); $j++) {
echo $j . $jobsFilterA[$j] . "<br>";
}
这样做:
foreach($jobsFilterA as $job) {
echo $job . "<br>";
}
我有5个不同的数组,其中一些简单地从数据库提取中构建,其他的然后通过删除特定索引进行修整。
感觉到我由于输入了unset函数而刚得到空索引。
我可以删除未设置的索引,还是重建数组的正确方法?
提前致谢!
尝试以不同的方式遍历多个不同的数组。
代码在上面。
for循环中的未设置索引会引发未定义的偏移量异常/错误。
最后,这5个数组需要回显到表中。我一直通过这样的for循环来这样做:
/*
* Echo data into a table
*/
echo '<tbody>';
for($i=0; $i < sizeof($jobsFilterA); $i++){
echo "<tr><td>" . strtoupper(substr($custLastNames[$i], 0, 4)) . "</td>";
echo "<td width='100'>" . $jobsFilterA[$i] . "</td>";
echo "<td>" . $waxDueDates[$i] . "</td>";
echo "<td>" . $dayDifferences[$i] . "</td>";
echo "<td>" . $revisedETAs[$i] . "</td></tr>";
}
echo '</tbody>'
这就是为什么我希望可以重组数组,以便它们的数据以对齐方式/连续性进行索引。
如果您使用unset
了数字序列(取消设置最后一个索引的情况除外),则for
将会失败,因为您将访问不再存在的键(并将收到警告)。
例如,如果您有一个数组['a', 'b', 'c', 'd']
并且未设置索引2
,则结果为[0 => 'a', 1 => 'b', 3 => 'd']
,但是for
循环不知道该值,因此您的代码仍会检查$jobsFilterA[2]
何时$j
为is 2
。如果您确实想使用for
,则可以使用例如重置密钥array_values
,这将使您可以使用[0 => 'a', 1 => 'b', 2 => 'd']
现有的密钥for
。
如果您只想检查$jobsFilterA
其他数组中的相同索引,则可以使用另一种选择,foreach($jobsFilterA as $i => $job)
那么您可以访问例如$waxDueDates[$i]
where$i
与当前迭代相同的索引$jobsFilterA
。也有其他各种方法可以做到这一点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句