我从一个excel电子表格中获取数据,并将其保存到数组中。然后,我将这些数据循环两次。如何在PHP中实现scoped foreach?
我做的:
foreach($someData as $key => $value) {
}
,我需要再次的foreach相同的阵列。有没有什么办法可以做到这一点,所以我可以再次使用$ key => $ value而不会造成任何问题?
我从一个excel电子表格中获取数据,并将其保存到数组中。然后,我将这些数据循环两次。如何在PHP中实现scoped foreach?
我做的:
foreach($someData as $key => $value) {
}
,我需要再次的foreach相同的阵列。有没有什么办法可以做到这一点,所以我可以再次使用$ key => $ value而不会造成任何问题?
这听起来像你只需要一个循环,但回答你的问题,你可以这样做:
foreach($someData as $key => $value) {
#do stuff here
}
foreach($someData as $key => $value) {
#do more stuff here
}
$key
和$value
每个循环的每次迭代期间将被覆盖,因此在这里没有危险。
你的问题有点不清楚,不过,如果你有一个foreach
另一foreach
的内部并希望使用相同的一组变量名的每个回路的键和值,使用功能。这是在PHP中创建新的本地范围的唯一方法:
function nested_loop($arr) {
foreach($arr as $key => $value) {
#do more stuff here
}
}
foreach($someData as $key => $value) { #same names, different variables
#do stuff here
nested_loop($value);
}
如果你的意思是两个foreach在同一个数组中相互嵌套,为什么不在你进入循环之前创建同一个数组的副本。 如果你的意思是在同一个数组上的两个独立的foreach循环,应该没有问题。
为什么不循环一次? –
当你说“循环数据两次”时,第一个循环是在你开始第二个循环之前完成的吗? – Revent