PHP에서 배열 전체 복사를 위한 방법에는 json_decode 및 json_encode를 사용한 JSON 인코딩 및 디코딩이 포함됩니다. array_map 및 clone을 사용하여 키와 값의 전체 복사본을 만듭니다. 직렬화 및 역직렬화를 위해 직렬화 및 역직렬화를 사용합니다.
PHP 배열 심층 복사의 예술: 다양한 방법을 사용하여 완벽한 복사 달성
PHP에서 배열은 관련 데이터를 저장하고 관리하는 데 사용되는 강력한 데이터 구조입니다. 때로는 작업을 수행하거나 원본 데이터가 실수로 수정되는 것을 방지하기 위해 배열의 복사본을 만들어야 하는 경우도 있습니다. 이것이 딥 카피가 작동하는 곳입니다. 중첩된 배열과 객체를 포함하여 원본 배열의 모든 요소를 포함하는 새 배열을 생성합니다.
방법 1: json_decode
및 json_encode
json_decode
和 json_encode
<?php $originalArray = [ 'name' => 'John Doe', 'age' => 30, 'hobbies' => ['reading', 'hiking', 'coding'] ]; // JSON 编码原始数组 $jsonEncoded = json_encode($originalArray); // JSON 解码 JSON 编码的字符串 $deepCopy = json_decode($jsonEncoded, true); print_r($deepCopy); ?>
方法 2:array_map
和 clone
<?php $originalArray = [ 'name' => 'Jane Smith', 'age' => 25, 'address' => ['street' => 'Main Street', 'number' => 123] ]; // 复制数组键及其值的深度副本 $deepCopy = array_map(function($value) { return is_array($value) ? array_map('clone', $value) : clone $value; }, $originalArray); print_r($deepCopy); ?>
方法 3:serialize
和 unserialize
<?php $originalArray = [ 'product' => 'Book', 'quantity' => 5, 'details' => ['author' => 'John Smith', 'publisher' => 'ACME Press'] ]; // 序列化原始数组 $serialized = serialize($originalArray); // 反序列化序列化字符串 $deepCopy = unserialize($serialized); print_r($deepCopy); ?>
방법 2: array_map
및 clone
<?php // 原始购物篮数组 $originalCart = [ ['product' => 'Book', 'quantity' => 3], ['product' => 'Pen', 'quantity' => 2], ['product' => 'Charger', 'quantity' => 1] ]; // 使用方法 1 创建购物篮副本 $deepCopy = json_decode(json_encode($originalCart), true); // 在副本中移除一个商品 unset($deepCopy[1]); // 输出更新后的购物篮副本 print_r($deepCopy); ?>
방법 3: 직렬화
및 직렬화 해제
위 내용은 PHP 어레이 딥 카피(Array Deep Copy) 기술: 다양한 방법을 사용하여 완벽한 카피 달성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!