Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menggabungkan Tatasusunan dengan Kekunci Identik dan Memelihara Semua Data?

Bagaimana untuk Menggabungkan Tatasusunan dengan Kekunci Identik dan Memelihara Semua Data?

DDD
DDDasal
2024-11-03 12:15:29663semak imbas

How to Merge Arrays with Identical Keys and Preserve All Data?

Menggabungkan Tatasusunan dengan Kekunci Seiras: Mengatasi Keterbatasan array_merge

Dalam pembangunan perisian, menggabungkan tatasusunan dengan kunci yang sama boleh menjadi tugas biasa. Walau bagaimanapun, fungsi array_merge selalunya gagal untuk menggabungkan semua elemen dengan kekunci yang sama, mengakibatkan kehilangan data.

Pertimbangkan contoh berikut:

<code class="php">$A = array('a' => 1, 'b' => 2, 'c' => 3);
$B = array('c' => 4, 'd' => 5);

array_merge($A, $B);

// Result
 [a] => 1 [b] => 2 [c] => 4 [d] => 5</code>

Seperti yang ditunjukkan, nilai asal 'c ' => 3 hilang selepas bergabung. Untuk menangani isu ini, pendekatan alternatif diperlukan.

Penyelesaian: array_merge_recursive

Sebaliknya, penyelesaiannya terletak pada penggunaan fungsi array_merge_recursive. Tidak seperti array_merge, array_merge_recursive menggabungkan kekunci dan nilai tatasusunan input secara rekursif, mengekalkan semua data.

Kod berikut menunjukkan pendekatan ini:

<code class="php">$A = array('a' => 1, 'b' => 2, 'c' => 3);
$B = array('c' => 4, 'd' => 5);

array_merge_recursive($A, $B);

// Result
 [a] => 1 [b] => 2 [c] => [0 => 3, 1 => 4] [d] => 5</code>

Seperti yang anda lihat, kedua-dua nilai dikaitkan dengan 'c' dikekalkan. Walau bagaimanapun, kerana hanya terdapat satu kunci 'c' dalam tatasusunan yang digabungkan, hasilnya menjadi tatasusunan dalam tatasusunan.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Tatasusunan dengan Kekunci Identik dan Memelihara Semua Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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