mik*_*ble 12 php foreach multidimensional-array
我正在改变多维数组中的值,并且它不会停留在用于遍历它的foreach循环之外.
我的数组最初看起来像这样:
Array
{
[0] => Array
{
[name] => Bob
[age] => 33
[state] => CA
[visited] => 0
}
...
}
Run Code Online (Sandbox Code Playgroud)
我的PHP通过以下方式进入:
foreach ($people as $person){
echo $person['name']
....
logic for the visited variable
...
$person['visited'] = $calculated_visit_value;
}
Run Code Online (Sandbox Code Playgroud)
如果我
print_r($person)
Run Code Online (Sandbox Code Playgroud)
在foreach循环的最后(但内部),一切看起来都很好,访问的值设置.但是,如果我print_r($people)在循环之外,$person['visited']则不设置.我不知道我做错了什么.
感谢帮助.
Ali*_*guy 37
您正在创建一个$person从for循环中调用的新变量,您的数组将永远不会看到该新变量的范围.
您可以尝试通过引用传递它,如下所示:
foreach ($people as &$person){
echo $person['name'];
....
logic for the visited variable
...
$person['visited'] = $calculated_visit_value;
}
Run Code Online (Sandbox Code Playgroud)