如果我有这样的数组:
array(2) {
[0]=>
array(2) {
["id"]=>
string(2) "34"
["total"]=>
string(6) "122337"
},
[1]=>
array(2) {
["id"]=>
string(2) "43"
["total"]=>
string(6) "232337"
}
}
array(2) {
[0]=>
array(2) {
["id"]=>
string(2) "34"
["total"]=>
string(6) "122337"
["newkey"]=>
string(6) "hihihi"
},
[1]=>
array(2) {
["id"]=>
string(2) "43"
["total"]=>
string(6) "232337"
["newkey"]=>
string(6) "hihihi"
}
}
我该怎么办?
我试过像这样的foreach:
foreach($exterior_array as $inside_array) {
$inside_array['newkey'] = "hihihi";
}
但是一旦进入foreach,值就不会被保存.
解决方法:
foreach($exterior_array as $inside_array) {
$inside_array['newkey'] = "hihihi";
}
But once I get inside the foreach, the values are not saved.
那是因为你正在通过$inside_array处理数组的副本.您可以通过使$inside_array成为原始值的别名来访问要更改的“orignal”值;使用参考:
foreach($exterior_array as &$inside_array) {
^- set the reference
$inside_array['newkey'] = "hihihi";
}
unset($inside_array);
^^^^^^^^^^^^^^^^^^^^^- remove the reference