我有一个数组数组,我正在尝试循环遍历并将新项插入子数组。
看看下面
$newarray = array(
array("id"=>1,"quantity"=>2),
array("id"=>1,"quantity"=>2),
array("id"=>1,"quantity"=>2),
);
foreach($newarray as $item){
$item["total"] = 9;
}
echo "<br>";
print_r($newarray);
结果只给了原始数组而没有新的&#34;总数&#34;。为什么?
答案 0 :(得分:3)
因为$item
不是$newarray[$loop_index]
的引用:
foreach($newarray as $loop_index => $item){
$newarray[$loop_index]["total"] = 9;
}
答案 1 :(得分:1)
foreach()
语句将$item
作为数组:不作为实际值(使用数组)。这意味着它可以被读取但不会被更改,除非您覆盖消耗数组。
您可以使用for()
并像这样循环:see demo。
注意:这会一直回到范围,你应该研究一下。