Memahami Operasi Array Union: ' ' dalam PHP
Dalam PHP, operator tatasusunan ' ' membenarkan penggabungan dua tatasusunan, menggabungkan elemen mereka ke dalam tatasusunan terhasil tunggal. Walau bagaimanapun, tidak seperti kaedah penggabungan lain seperti array_merge(), pengendali ' ' mempunyai tingkah laku khusus yang selalunya boleh membawa kepada hasil yang tidak dijangka.
Cara Operator ' ' Berfungsi
Menurut Manual PHP, operator ' ' mengembalikan tatasusunan sebelah kanan yang dilampirkan pada tatasusunan sebelah kiri. Yang penting, untuk kekunci pendua, elemen daripada tatasusunan sebelah kiri diutamakan, manakala yang daripada tatasusunan sebelah kanan diabaikan.
Contoh
Pertimbangkan perkara berikut contoh:
$array1 = ['one', 'two', 'foo' => 'bar']; $array2 = ['three', 'four', 'five', 'foo' => 'baz']; echo '<pre class="brush:php;toolbar:false">', print_r($array1 + $array2), '';
Output:
Array ( [0] => one [1] => two [foo] => bar [2] => five )
Seperti yang dilihat dalam output, operator ' ' menggabungkan tatasusunan seperti berikut:
Butiran Pelaksanaan
Tingkah laku operator ' ' adalah serupa dengan logik berikut:
$union = $array1; foreach ($array2 as $key => $value) { if (!array_key_exists($key, $union)) { $union[$key] = $value; } }
Perbandingan dengan array_merge()
Adalah penting untuk ambil perhatian bahawa kelakuan ' ' berbeza daripada array_merge(). Sebagai contoh, menggunakan array_merge() pada input yang sama akan memberikan output berikut:
echo '<pre class="brush:php;toolbar:false">', print_r(array_merge($array1, $array2)), '';
Output:
Array ( [0] => one [1] => two [foo] => baz [2] => three [3] => four [4] => five )
Dalam kes ini, array_merge() menggabungkan tatasusunan, dengan elemen daripada tatasusunan sebelah kanan yang menimpa kekunci pendua dari sebelah kiri tatasusunan.
Kesimpulan
Memahami gelagat bernuansa pengendali ' ' memastikan tatasusunan digabungkan seperti yang dikehendaki dalam kod PHP. Keutamaan unsur tatasusunan sebelah kiri berbanding unsur tatasusunan sebelah kanan selalunya membawa kepada hasil yang mungkin tidak dijangka dan memerlukan penelitian lanjut atau kaedah penggabungan alternatif seperti array_merge().
Atas ialah kandungan terperinci Bagaimanakah ' ' Array Operator PHP berbeza daripada `array_merge()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!