如果我通过引用在foreach循环中修改嵌套数组,然后在第二个foreach循环中使用它(按值传递),那么我将释放最后一个嵌套数组,该数组将被penultime嵌套数组替换。
但是,如果我通过引用而不是第二个foreach循环中的值传递项目,那么我会得到预期的结果。
$array = array(0 => array("A" => "A1", "B" => "B1"), 1 => array("A" => "A2", "XX" => "BAF", "B" => "B2"), 2 => array("A" => "A3", "B" => "B3"));
foreach($array as &$value ){
unset($value["B"]);
}
$array[1]["XX"] = "CCC";
foreach($array as $value){
echo var_dump($value);
}
我期望这样的事情:
array(1){[“” A“] =>字符串(2)” A1“} array(2){[” A“] =>字符串(2)” A2“ [” XX“] =>字符串(3)“ CCC”} array(1){[“”“] =>字符串(2)” A3“}
但是我得到: array(1){[“” A“] =>字符串(2)” A1“} array(2){[” A“] =>字符串(2)” A2“ [” XX“] =>字符串(3) “ CCC”} array(2){[“ A”] =>字符串(2)“ A2” [“ XX”] =>字符串(3)“ CCC”}