如何在PHP中完全复制数组到另一个变量,使修改不影响原数组?
大家好!我是PHP新手,遇到了一个困惑的情况。我有一个用户设置数组,想创建它的备份,以便在出问题时恢复。
这是一个简化的例子:
```php
$original = ['name' => 'Иван', 'age' => 30, 'hobbies' => ['чтение', 'бег']];
$backup = $original; // 我以为这是副本
```
我修改副本,但更改影响了原数组:
```php
$backup['name'] = 'Петр';
echo $original['name']; // 输出 'Иван' — 没问题,这有效
```
但当我修改嵌套数组时:
```php
$backup['hobbies'][] = 'программирование';
print_r($original['hobbies']); // 输出 ['чтение', 'бег', 'программирование']
```
原数组也变了!我了解到在PHP中,数组默认在赋值时复制(copy-on-write),但这不适用于嵌套数组。有没有内置函数可以深度复制(deep copy)数组,使所有嵌套层级都独立?还是需要...