是否有一个函数可以将一个PHP数组复制到另一个数组?

我已经被烧毁了几次试图复制PHP数组。我想将对象内定义的数组复制到对象外部的全局数组。


当前回答

我很久以前就知道这一点,但这对我来说很有效。

$copied_array = array_slice($original_array,0,count($original_array));

其他回答

在php数组中,你只需要将它们赋值给其他变量来获得数组的副本。但首先你需要确定它的类型,是array还是arrayObject还是stdObject。

对于简单php数组:

$a = array(
'data' => 10
);

$b = $a;

var_dump($b);

output:

array:1 [
  "data" => 10
]

当你这样做时

$array_x = $array_y;

PHP复制了数组,所以我不确定你是如何被烧毁的。为了你的案子,

global $foo;
$foo = $obj->bar;

应该没问题。

我认为,要想被复制,要么必须使用引用,要么需要克隆数组中的对象。

创建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

array_merge()是一个函数,在PHP中可以将一个数组复制到另一个数组。

简单,使深度复制打破所有链接

$new=unserialize(serialize($old));