PHP 어레이 딥 카피(Array Deep Copy) 기술: 다양한 방법을 사용하여 완벽한 카피 달성

WBOY
풀어 주다: 2024-05-01 12:30:01
원래의
922명이 탐색했습니다.

PHP에서 배열 전체 복사를 위한 방법에는 json_decode 및 json_encode를 사용한 JSON 인코딩 및 디코딩이 포함됩니다. array_map 및 clone을 사용하여 키와 값의 전체 복사본을 만듭니다. 직렬화 및 역직렬화를 위해 직렬화 및 역직렬화를 사용합니다.

PHP 어레이 딥 카피(Array Deep Copy) 기술: 다양한 방법을 사용하여 완벽한 카피 달성

PHP 배열 심층 복사의 예술: 다양한 방법을 사용하여 완벽한 복사 달성

PHP에서 배열은 관련 데이터를 저장하고 관리하는 데 사용되는 강력한 데이터 구조입니다. 때로는 작업을 수행하거나 원본 데이터가 실수로 수정되는 것을 방지하기 위해 배열의 복사본을 만들어야 하는 경우도 있습니다. 이것이 딥 카피가 작동하는 곳입니다. 중첩된 배열과 객체를 포함하여 원본 배열의 모든 요소를 ​​포함하는 새 배열을 생성합니다.

방법 1: json_decodejson_encodejson_decodejson_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_mapclone

<?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:serializeunserialize

<?php
$originalArray = [
    'product' => 'Book',
    'quantity' => 5,
    'details' => ['author' => 'John Smith', 'publisher' => 'ACME Press']
];

// 序列化原始数组
$serialized = serialize($originalArray);

// 反序列化序列化字符串
$deepCopy = unserialize($serialized);

print_r($deepCopy);
?>
로그인 후 복사

방법 2: array_mapclone

<?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: 직렬화직렬화 해제

🎜rrreee🎜🎜실용 사례: 장바구니 관리자🎜🎜🎜장바구니에 있는 사용자 쇼핑 항목을 관리하는 장바구니 관리자를 생각해 보세요. . 원래 장바구니를 수정하지 않으려면 총 가격 계산, 항목 제거 등의 작업을 수행하기 위해 장바구니의 복사본을 만들어야 합니다. 심층 복사를 통해 원본 바구니에 영향을 주지 않는 독립적인 복사본을 확보할 수 있습니다. 🎜아아아아

위 내용은 PHP 어레이 딥 카피(Array Deep Copy) 기술: 다양한 방법을 사용하여 완벽한 카피 달성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!