是否有一个函数可以将一个PHP数组复制到另一个数组?
我已经被烧毁了几次试图复制PHP数组。我想将对象内定义的数组复制到对象外部的全局数组。
是否有一个函数可以将一个PHP数组复制到另一个数组?
我已经被烧毁了几次试图复制PHP数组。我想将对象内定义的数组复制到对象外部的全局数组。
当前回答
我发现最安全、最便宜的方法是:
<?php
$b = array_values($a);
这也有重新索引数组的好处。
这将不会像预期的那样工作在关联数组(哈希)上,但也不是以前的大多数答案。
其他回答
我喜欢array_replace(或array_replace_recursive)。
$克隆= array_replace([], $YOUR_ARRAY);
它像Object一样工作。从JavaScript赋值。
$original = [ 'foo' => 'bar', 'fiz' => 'baz' ];
$cloned = array_replace([], $original);
$clonedWithReassignment = array_replace([], $original, ['foo' => 'changed']);
$clonedWithNewValues = array_replace([], $original, ['add' => 'new']);
$original['new'] = 'val';
会导致
// original:
{"foo":"bar","fiz":"baz","new":"val"}
// cloned:
{"foo":"bar","fiz":"baz"}
// cloned with reassignment:
{"foo":"changed","fiz":"baz"}
// cloned with new values:
{"foo":"bar","fiz":"baz","add":"new"}
这是我在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_merge()是一个函数,在PHP中可以将一个数组复制到另一个数组。
我发现最安全、最便宜的方法是:
<?php
$b = array_values($a);
这也有重新索引数组的好处。
这将不会像预期的那样工作在关联数组(哈希)上,但也不是以前的大多数答案。
<?php
function arrayCopy( array $array ) {
$result = array();
foreach( $array as $key => $val ) {
if( is_array( $val ) ) {
$result[$key] = arrayCopy( $val );
} elseif ( is_object( $val ) ) {
$result[$key] = clone $val;
} else {
$result[$key] = $val;
}
}
return $result;
}
?>