Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bilakah Operator Boleh Menggabungkan Tatasusunan dengan Selamat dalam PHP?

Bilakah Operator Boleh Menggabungkan Tatasusunan dengan Selamat dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-10-24 14:41:02172semak imbas

When Can the   Operator Safely Concatenate Arrays in PHP?

Memahami Operator untuk Penggabungan Array dalam PHP

Dalam PHP, operator boleh digunakan untuk menggabungkan dua tatasusunan. Walau bagaimanapun, kes tertentu mungkin timbul apabila pengendali ini berkelakuan di luar jangkaan, membawa kepada keputusan yang salah.

Pertimbangkan kod berikut:

<code class="php">$array = array('Item 1');

$array += array('Item 2');

var_dump($array);</code>

Output yang dijangkakan ialah tatasusunan yang mengandungi kedua-dua 'Item 1' dan 'Item 2'. Walau bagaimanapun, output sebenar ialah:

array(1) {
  [0] => string(6) "Item 1"
}

Percanggahan ini berlaku kerana PHP meruntuhkan elemen tatasusunan dengan kunci pendua apabila menggunakan operator. Dalam kes ini, kedua-dua elemen mempunyai kunci 0, menyebabkan hanya elemen pertama dikekalkan.

Untuk menangani isu ini dan menggabungkan tatasusunan dengan betul, adalah disyorkan untuk menggunakan fungsi array_merge() sebaliknya.

<code class="php">$arr1 = array('foo');
$arr2 = array('bar');

// Will contain array('foo', 'bar');
$combined = array_merge($arr1, $arr2);</code>

Array_merge() mengekalkan struktur tatasusunan, memastikan elemen dengan kekunci yang berbeza digabungkan dengan betul.

Dalam senario di mana elemen tatasusunan memiliki kunci unik, pengendali boleh menjadi pilihan yang sesuai.

<code class="php">$arr1 = array('one' => 'foo');
$arr2 = array('two' => 'bar');

// Will contain array('one' => 'foo', 'two' => 'bar');
$combined = $arr1 + $arr2;</code>

Atas ialah kandungan terperinci Bilakah Operator Boleh Menggabungkan Tatasusunan dengan Selamat dalam PHP?. 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