是否有一个函数可以将一个PHP数组复制到另一个数组?
我已经被烧毁了几次试图复制PHP数组。我想将对象内定义的数组复制到对象外部的全局数组。
是否有一个函数可以将一个PHP数组复制到另一个数组?
我已经被烧毁了几次试图复制PHP数组。我想将对象内定义的数组复制到对象外部的全局数组。
当前回答
如果你的数组只有基本类型,你可以这样做:
$copy = json_decode( json_encode($array), true);
您不需要手动更新引用 我知道这不是对每个人都有效,但对我很有效
其他回答
如果您有一个包含对象的数组,您需要在不触及其内部指针的情况下复制该数组,并且需要克隆所有对象(这样当您对复制的数组进行更改时不会修改原始对象),请使用此方法。
不接触数组内部指针的技巧是确保您使用的是数组的副本,而不是原始数组(或原始数组的引用),因此使用函数形参将完成工作(因此,这是一个接受数组的函数)。
注意,如果你希望对象的属性也被克隆,你仍然需要在对象上实现__clone()。
此函数适用于任何类型的数组(包括混合类型)。
function array_clone($array) {
return array_map(function($element) {
return ((is_array($element))
? array_clone($element)
: ((is_object($element))
? clone $element
: $element
)
);
}, $array);
}
PHP将默认复制数组。PHP中的引用必须显式。
$a = array(1,2);
$b = $a; // $b will be a different array
$c = &$a; // $c will be a reference to $a
定义:
$copy = create_function('$a', 'return $a;');
复制$_ARRAY到$_ARRAY2:
$_ARRAY2 = array_map($copy, $_ARRAY);
如果你的数组只有基本类型,你可以这样做:
$copy = json_decode( json_encode($array), true);
您不需要手动更新引用 我知道这不是对每个人都有效,但对我很有效
array_merge()是一个函数,在PHP中可以将一个数组复制到另一个数组。