是否有一个函数可以将一个PHP数组复制到另一个数组?
我已经被烧毁了几次试图复制PHP数组。我想将对象内定义的数组复制到对象外部的全局数组。
是否有一个函数可以将一个PHP数组复制到另一个数组?
我已经被烧毁了几次试图复制PHP数组。我想将对象内定义的数组复制到对象外部的全局数组。
当前回答
简单,使深度复制打破所有链接
$new=unserialize(serialize($old));
其他回答
这是我在Php中复制数组的方式:
function equal_array($arr){
$ArrayObject = new ArrayObject($arr);
return $ArrayObject->getArrayCopy();
}
$test = array("aa","bb",3);
$test2 = equal_array($test);
print_r($test2);
这个输出:
Array
(
[0] => aa
[1] => bb
[2] => 3
)
当你这样做时
$array_x = $array_y;
PHP复制了数组,所以我不确定你是如何被烧毁的。为了你的案子,
global $foo;
$foo = $obj->bar;
应该没问题。
我认为,要想被复制,要么必须使用引用,要么需要克隆数组中的对象。
PHP将默认复制数组。PHP中的引用必须显式。
$a = array(1,2);
$b = $a; // $b will be a different array
$c = &$a; // $c will be a reference to $a
我很久以前就知道这一点,但这对我来说很有效。
$copied_array = array_slice($original_array,0,count($original_array));
foreach($a as $key => $val) $b[$key] = $val ;
同时保留键和值。数组a是数组b的精确副本