--TEST-- Bug #71969 (str_replace returns an incorrect resulting array after a foreach by reference) --FILE-- array("a"=>"0000", "b"=>"1111")), ); //foreach by reference, changing the array value foreach($a as &$record) { $record["one"]["a"] = "2222"; } var_dump(str_replace("2", "3", $a)); ?> --EXPECT-- array(1) { [0]=> array(1) { ["one"]=> array(2) { ["a"]=> string(4) "2222" ["b"]=> string(4) "1111" } } }