Kaedah untuk tatasusunan penyalinan dalam dalam PHP termasuk: pengekodan dan penyahkodan JSON menggunakan json_decode dan json_encode. Gunakan peta_tatasusunan dan klon untuk membuat salinan kunci dan nilai yang mendalam. Gunakan bersiri dan menyahsiri untuk bersiri dan menyahsiri.
Seni PHP Array Deep Copy: Menggunakan Kaedah Berbeza untuk Mencapai Salinan Sempurna
Dalam PHP, tatasusunan ialah struktur data berkuasa yang digunakan untuk menyimpan dan mengurus data berkaitan. Kadangkala kita perlu membuat salinan tatasusunan untuk melaksanakan operasi atau untuk mengelakkan pengubahsuaian yang tidak disengajakan kepada data asalnya. Di sinilah salinan dalam memainkan peranan: ia mencipta tatasusunan baharu yang mengandungi semua elemen tatasusunan asal, termasuk tatasusunan dan objek bersarang.
Kaedah 1: json_decode
dan 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); ?>
Kaedah 2: array_map
dan 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); ?>
Kaedah 3:
Atas ialah kandungan terperinci Seni PHP Array Deep Copy: Menggunakan Kaedah Berbeza untuk Mencapai Salinan Sempurna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!