如何在PHP中克隆对象数组?
我有一个对象数组。我知道对象由“引用”分配,数组由“值”分配。但是当我分配数组时,数组的每个元素都引用该对象,因此当我修改任一数组中的对象时,更改将反映在另一个数组中。
有没有一种简单的方法来克隆数组,或者我必须循环使用它来克隆每个对象?
我有一个对象数组。我知道对象由“引用”分配,数组由“值”分配。但是当我分配数组时,数组的每个元素都引用该对象,因此当我修改任一数组中的对象时,更改将反映在另一个数组中。
有没有一种简单的方法来克隆数组,或者我必须循环使用它来克隆每个对象?
$array = array_merge(array(), $myArray);
复制数组时,对相同对象的引用已被复制。但是,在创建第二个数组时,您似乎想要对第一个数组中引用的对象进行浅层复制深度复制,因此您将获得两个不同但相似的对象的数组。
我现在能想到的最直观的方法是循环;可能有更简单或更优雅的解决方案:
$new = array();
foreach ($old as $k => $v) {
$new[$k] = clone $v;
}