如何在PHP中实现作用域foreach?
我从excel电子表格中获取数据,在其上循环,并将其保存到数组中。然后,我将该数据循环两次 我有:如何在PHP中实现作用域foreach?,php,foreach,scope,Php,Foreach,Scope,我从excel电子表格中获取数据,在其上循环,并将其保存到数组中。然后,我将该数据循环两次 我有: 我需要再次使用相同的数组。有什么方法可以让我再次使用$key=>$value而不引起任何问题吗?听起来您只需要一个循环,但要回答您的问题,您可以这样做: foreach($someData as $key => $value) { #do stuff here } foreach($someData as $key => $value) { #do more stuf
我需要再次使用相同的数组。有什么方法可以让我再次使用$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($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);
}
为什么不循环一次?当你说“循环两次数据”时,第一个循环在你开始第二个循环之前完成了吗?为什么不循环一次?当你说“循环两次数据”时,第一个循环在你开始第二个循环之前完成了吗?谢谢。我以为它们被覆盖了,但我不知道它是无害的。好吧,正确使用它是无害的,但总有一种可能性,你,程序员,会对某个特定变量包含的内容感到困惑,并犯错误(发生在我身上的事情比我希望的要多)。所以最好不要对两组变量使用相同的名称。。。通常像
$key1
和$key2
这样的东西是一个更好的主意。当它有意义的时候,我喜欢首先防止自己犯错误。谢谢。我以为它们被覆盖了,但我不知道它是无害的。好吧,正确使用它是无害的,但总有一种可能性,你,程序员,会对某个特定变量包含的内容感到困惑,并犯错误(发生在我身上的事情比我希望的要多)。所以最好不要对两组变量使用相同的名称。。。通常像$key1
和$key2
这样的东西是一个更好的主意。当它有意义时,我喜欢首先防止自己犯错误。