Amalan Terbaik untuk Menyalin Dalam Tatasusunan PHP: Temui Kaedah Cekap

WBOY
Lepaskan: 2024-04-30 15:42:01
asal
1085 orang telah melayarinya

Amalan terbaik untuk melaksanakan salinan dalam tatasusunan dalam PHP ialah menggunakan json_decode(json_encode($arr)) untuk menukar tatasusunan kepada rentetan JSON dan kemudian menukarnya kembali kepada tatasusunan. Gunakan unserialize(serialize($arr)) untuk mensiri tatasusunan kepada rentetan dan kemudian menyahsirikannya kepada tatasusunan baharu. Gunakan RecursiveIteratorIterator untuk melintasi tatasusunan berbilang dimensi secara rekursif.

Amalan Terbaik untuk Menyalin Dalam Tatasusunan PHP: Temui Kaedah Cekap

Amalan Terbaik untuk Menyalin Dalam Tatasusunan PHP: Temui Kaedah Cekap

Dalam PHP, tatasusunan ialah struktur data biasa yang digunakan secara meluas untuk menyimpan dan memproses data. Dalam sesetengah kes, anda mungkin mahu mencipta salinan tatasusunan supaya anda boleh mengendalikan salinan tanpa menjejaskan tatasusunan asal. Ini dipanggil salinan mendalam.

Kenapa pilih deep copy?

Salah satu faedah utama penyalinan mendalam ialah ia memastikan tatasusunan asal dan salinan adalah bebas antara satu sama lain. Pengubahsuaian yang dibuat pada salinan tidak menjejaskan tatasusunan asal. Ini berguna dalam situasi seperti caching dan senario konkurensi.

Kaedah salinan dalam

Dalam PHP, terdapat beberapa cara untuk melaksanakan salinan dalam:

  • json_decode(json_encode($arr));:Gunakanjson_encode() anuntuk menukar tatasusunan Tukar kepada rentetan JSON, kemudian gunakanjson_decode()untuk menukarnya kepada tatasusunan baharu.
  • json_encode()将数组转换为 JSON 字符串,然后使用 json_decode()将其转换为一个新数组。
  • unserialize(serialize($arr));:将数组序列化为一个字符串,然后使用unserialize()将其反序列化为一个新数组。
  • RecursiveIteratorIterator:这是一个 SPL 迭代器,支持对多维数组进行递归遍历。

真实案例

考虑以下示例:

$original_array = ['name' => 'John', 'age' => 30, 'scores' => [95, 85, 90]]; // 使用 json_decode() 进行深度复制 $copied_array = json_decode(json_encode($original_array), true); // 修改副本 $copied_array['name'] = 'Jane'; // 输出原始和复制的数组 echo '原始数组:'; var_dump($original_array); echo '复制的数组:'; var_dump($copied_array);
Salin selepas log masuk

在上面的示例中,json_encode()将原始数组转换为 JSON 字符串,json_decode()

unserialize(serialize($arr));: Mensiri tatasusunan menjadi rentetan, kemudian menggunakan unserialize()untuk menyahsirikannya menjadi tatasusunan baharu. RecursiveIteratorIterator: Ini ialah lelaran SPL yang menyokong lintasan rekursif tatasusunan berbilang dimensi. Kes SebenarPertimbangkan contoh berikut: rrreeeDalam contoh di atas, json_encode()menukar tatasusunan asal kepada rentetan JSON, json_decode()Tukarkannya kepada tatasusunan baharu. Kemudian, tatasusunan yang disalin diubah suai tanpa menjejaskan tatasusunan asal.

Atas ialah kandungan terperinci Amalan Terbaik untuk Menyalin Dalam Tatasusunan PHP: Temui Kaedah Cekap. 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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!