Rumah > pembangunan bahagian belakang > tutorial php > Seni PHP Array Deep Copy: Menggunakan Kaedah Berbeza untuk Mencapai Salinan Sempurna

Seni PHP Array Deep Copy: Menggunakan Kaedah Berbeza untuk Mencapai Salinan Sempurna

WBOY
Lepaskan: 2024-05-01 12:30:01
asal
943 orang telah melayarinya

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

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_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);
?>
Salin selepas log masuk

方法 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);
?>
Salin selepas log masuk

方法 3:serializeunserialize

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

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

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

print_r($deepCopy);
?>
Salin selepas log masuk

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);
?>
Salin selepas log masuk

Kaedah 3: sirikan dan nyahsiri

🎜rrreee🎜🎜Kes praktikal: Pengurus troli beli-belah🎜🎜🎜Pertimbangkan pengurus troli beli-belah yang menguruskan barang beli-belah pengguna dalam bakul . Untuk mengelakkan pengubahsuaian bakul asal, kita perlu mencipta salinannya untuk melaksanakan operasi seperti mengira jumlah harga atau mengalih keluar item. Penyalinan mendalam memastikan kami mempunyai salinan bebas yang tidak menjejaskan bakul asal. 🎜rreeee

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan