如何在PHP中实现scoped foreach?

时间:2013-05-31 17:22:05

标签: php foreach scope

我从excel电子表格中获取数据,循环遍历它,将其保存到数组中。然后,我将这些数据循环两次。

我做:

foreach($someData as $key => $value) {

}

我需要再次使用相同的数组。我有什么方法可以做到这一点,所以我可以使用$ key => $值再次没有造成任何问题?

1 个答案:

答案 0 :(得分:4)

听起来你只需要一个循环,但要回答你的问题,你可以这样做:

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);
}