是否有一个函数可以将一个PHP数组复制到另一个数组?
我已经被烧毁了几次试图复制PHP数组。我想将对象内定义的数组复制到对象外部的全局数组。
是否有一个函数可以将一个PHP数组复制到另一个数组?
我已经被烧毁了几次试图复制PHP数组。我想将对象内定义的数组复制到对象外部的全局数组。
当前回答
$arr_one_copy = array_combine(array_keys($arr_one), $arr_one);
只是再发布一个解决方案;)
其他回答
定义:
$copy = create_function('$a', 'return $a;');
复制$_ARRAY到$_ARRAY2:
$_ARRAY2 = array_map($copy, $_ARRAY);
这是我在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
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;
}
?>
创建ArrayObject的副本
<?php
// Array of available fruits
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);
$fruitsArrayObject = new ArrayObject($fruits);
$fruitsArrayObject['pears'] = 4;
// create a copy of the array
$copy = $fruitsArrayObject->getArrayCopy();
print_r($copy);
?>
从https://www.php.net/manual/en/arrayobject.getarraycopy.php