我正在更改多维数组中的值,并且它不会停留在用于遍历它的 foreach 循环之外。
我的数组最初看起来像这样:
Array
{
[0] => Array
{
[name] => Bob
[age] => 33
[state] => CA
[visited] => 0
}
...
}
我的 PHP 通过以下方式进入:
foreach ($people as $person){
echo $person['name']
....
logic for the visited variable
...
$person['visited'] = $calculated_visit_value;
}
如果我
print_r($person)
在 foreach 循环的末尾(但在内部),一切看起来都很好,已设置访问的值。但是,如果我 print_r($people)
在循环之外,则不会设置 $person['visited']
。我不知道我做错了什么。
感谢帮助。
最佳答案
您正在该 for 循环中创建一个名为 $person
的新变量,并且您的数组将永远不会看到该新变量的范围。
您可以尝试通过引用传递它,如下所示:
foreach ($people as &$person){
echo $person['name'];
....
logic for the visited variable
...
$person['visited'] = $calculated_visit_value;
}
关于PHP:替换数组值在 foreach 循环后不会保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6754710/