为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 的 foreach 和 for 之间的迭代差异

PHP 的 foreach 和 for 之间的迭代差异

PHP
心有法竹 2021-12-24 09:42:57
我可以使用 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>'这就是为什么我希望我可以重新组织数组,以便它们的数据以对齐/连续性索引。
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

如果您unset在数字序列上使用过(除非取消设置最后一个索引),那么for它将失败,因为您将访问一个不再存在的键(并且会收到警告)。

例如,如果您有一个数组['a', 'b', 'c', 'd']并且您取消设置 index 2,您最终会得到[0 => 'a', 1 => 'b', 3 => 'd'],但您的for循环不知道这一点,因此您的代码仍然会检查$jobsFilterA[2]when $jis 2。如果您真的想使用 a for,您可以使用 eg 重置密钥array_values,这将为[0 => 'a', 1 => 'b', 2 => 'd']您提供现有的密钥for

如果您只想检查$jobsFilterA其他数组中的相同索引,另一种选择是使用,foreach($jobsFilterA as $i => $job)然后您可以访问例如$waxDueDates[$i]where$i$jobsFilterA. 还有其他各种方法可以做到这一点。


查看完整回答
反对 回复 2021-12-24
  • 1 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号