所以$tr['tree']
是一个数组。 $dic
是存储为键值的数组。我想将密钥source
添加到那些数组中。看起来下面的代码没有按预期工作,因为我猜$dic
是$tr['tree']
中数组对象的新实例。
foreach($tr['tree'] as $dic){
$dic['source'] = $tr['source']." > ".$dic['name'];
}
请注意,我来自python,这将是出色的工作。那我怎么用PHP做这个呢?
答案 0 :(得分:4)
foreach()创建您循环的项目的副本,因此循环中的$dic
与数组分离。如果要修改父数组,安全方法是使用:
foreach($array as $key => $value) {
$array[$key] = $new_value;
}
您可以使用参考:
foreach($array as &$value) {
^---
$value = $new_value;
}
但这可能会导致以后难以发现的错误。在foreach终止后,$value
将继续引用。如果您稍后重新使用该变量名称用于其他内容,则您将修改该数组,因为var仍指向它。