Avatar ·

Cómo copiar completamente un array en PHP a otra variable para que los cambios no afecten al original

¡Hola, colegas! Soy nuevo en PHP y me encontré con una situación confusa. Tengo un array con configuraciones de usuario y quiero crear una copia de seguridad para restaurar si algo sale mal. Aquí un ejemplo simplificado: ```php $original = ['name' => 'Иван', 'age' => 30, 'hobbies' => ['чтение', 'бег']]; $backup = $original; // Pensé que esto era una copia ``` Modifico la copia, pero los cambios afectan al original: ```php $backup['name'] = 'Петр'; echo $original['name']; // Muestra 'Иван' — ok, esto funciona ``` Pero cuando modifico el array anidado: ```php $backup['hobbies'][] = 'программирование'; print_r($original['hobbies']); // Muestra ['чтение', 'бег', 'программирование'] ``` ¡El original también cambió! Leí que en PHP los arrays se copian por defecto al asignar (copy-on-write), pero esto no funciona para arrays anidados. ¿Existe una función incorporada que haga una copia profunda (deep copy) del array para que todos los niveles de anidamiento sean independientes? ¿O necesito