Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apa yang perlu dilakukan jika tatasusunan kosong selepas php merge

Apa yang perlu dilakukan jika tatasusunan kosong selepas php merge

PHPz
PHPzasal
2023-04-20 13:53:17845semak imbas

Sebagai bahasa pengaturcaraan yang digunakan secara meluas, PHP mempunyai fungsi operasi tatasusunan yang sangat berkuasa. Antaranya, menggabungkan tatasusunan adalah salah satu fungsi yang sangat praktikal. Walau bagaimanapun, dalam penggunaan sebenar, kadangkala kita mendapati tatasusunan yang digabungkan itu kosong, jadi apa yang sedang berlaku?

1. Kaedah asas penggabungan tatasusunan

Mari kita semak kaedah asas penggabungan tatasusunan dalam PHP. Dalam PHP, terdapat tiga fungsi yang boleh digunakan untuk menggabungkan tatasusunan, iaitu array_merge(), array_merge_recursive() dan operator +.

1. Fungsi array_merge()

Fungsi ini digunakan untuk menggabungkan nilai dua atau lebih tatasusunan ke dalam satu tatasusunan dan mengembalikan tatasusunan yang digabungkan. Ia digunakan seperti berikut:

$resultArray = array_merge($array1, $array2);

array_merge() boleh menggunakan sebarang bilangan tatasusunan, dan untuk nama kunci yang sama, hanya nilai yang sepadan dengan nama kunci terakhir dikekalkan, dan nilai yang sepadan kepada nama kunci sebelumnya akan Diabaikan.

2. fungsi array_merge_recursive()

Fungsi ini serupa dengan fungsi array_merge(), tetapi ia akan menggabungkan dua atau lebih tatasusunan secara rekursif ke dalam satu tatasusunan dan mengembalikan tatasusunan yang digabungkan. Ia digunakan seperti berikut:

$resultArray = array_merge_recursive($array1, $array2);

array_merge_recursive() juga boleh menggunakan sebarang bilangan tatasusunan, dan untuk nama kunci yang sama, ia akan menggabungkan nilai ke dalam tatasusunan tunggal.

3. + operator

Dalam PHP, anda juga boleh menggunakan + operator untuk menggabungkan nilai dua tatasusunan ke dalam satu tatasusunan dan mengembalikan tatasusunan. Ia digunakan seperti berikut:

$resultArray = $array1 + $array2;

+ operator juga boleh digunakan dengan sebarang bilangan tatasusunan. Untuk nama kunci yang sama, hanya nilai yang sepadan dengan tatasusunan pertama dikekalkan, dan nilai yang sepadan dengan tatasusunan berikutnya diabaikan.

2. Situasi apabila tatasusunan tercantum kosong

Apabila kita menggunakan tiga kaedah di atas untuk mencantumkan tatasusunan, kadangkala kita akan mendapati hasil cantuman adalah tatasusunan kosong mengecewakan. Jadi mengapa ini berlaku?

1. Konflik nama kunci menyebabkan kegagalan gabungan

Apabila menggunakan tiga kaedah di atas untuk menggabungkan tatasusunan, jika nama kunci yang sama wujud dalam dua tatasusunan, operasi gabungan mungkin gagal ialah tatasusunan kosong.

Sebagai contoh, terdapat dua tatasusunan $array1 dan $array2, nama kunci mereka adalah sama, tatasusunan adalah seperti berikut:

$array1 = array("a" => "A", "b" => "B");
$array2 = array("a" => "AA", "c" => "C");

Jika kita menggunakan fungsi array_merge() untuk cantumkan, seperti berikut:

$resultArray = array_merge($array1, $array2);

Operasi cantuman akan gagal kerana konflik nama kunci, dan hasil $resultArray akan menjadi tatasusunan kosong.

Begitu juga, jika kita menggunakan fungsi array_merge_recursive() untuk bergabung, seperti yang ditunjukkan di bawah:

$resultArray = array_merge_recursive($array1, $array2);

Operasi gabungan akan gagal kerana konflik nama utama, dan hasil $resultArray akan juga menjadi tatasusunan kosong.

Jika kami menggunakan operator + untuk bergabung, seperti yang ditunjukkan di bawah:

$resultArray = $array1 + $array2;

Operasi gabungan juga akan gagal kerana konflik nama utama dan hasil $resultArray masih akan menjadi tatasusunan kosong.

2. Penggabungan gagal kerana tatasusunan kosong

Selain konflik nama utama, jika satu atau kedua-dua tatasusunan kosong, operasi cantuman juga akan gagal.

Sebagai contoh, jika tatasusunan ialah tatasusunan kosong seperti berikut:

$array1 = array();
$array2 = array("a" => "A");

Jika kita bergabung menggunakan fungsi array_merge() seperti berikut:

$resultArray = array_merge($array1, $array2);

Sejak array $array1 ialah tatasusunan kosong, operasi cantum akan gagal, dan hasil $resultArray akan menjadi tatasusunan kosong.

Begitu juga, jika kita menggunakan fungsi array_merge_recursive() untuk bergabung, seperti yang ditunjukkan di bawah:

$resultArray = array_merge_recursive($array1, $array2);

Memandangkan tatasusunan $array1 ialah tatasusunan kosong, operasi cantum akan gagal, dan hasil $resultArray akan sama ialah tatasusunan kosong.

Jika kita menggunakan operator + untuk bergabung seperti berikut:

$resultArray = $array1 + $array2;

Maka oleh kerana array $array1 ialah array kosong, hasil $resultArray ialah $array2 itu sendiri, iaitu, $resultArray = $array2.

3. Elakkan penggabungan tatasusunan daripada gagal

Untuk mengelakkan tatasusunan kosong apabila menggabungkan tatasusunan menggunakan tiga kaedah di atas, kita boleh menggunakan beberapa kaedah untuk mengelakkan situasi ini.

1 Gunakan fungsi isset() untuk menentukan sama ada tatasusunan kosong

Apabila menggunakan tiga kaedah di atas untuk menggabungkan tatasusunan, kita boleh menggunakan fungsi isset() untuk menentukan sama ada tatasusunan. kosong. Ini mengelakkan kegagalan gabungan.

Sebagai contoh, jika kita ingin menggabungkan tatasusunan $array1 dan $array2, kita boleh menentukan sama ada tatasusunan itu kosong seperti ini:

if (isset($array1) && isset($array2)) {
    $resultArray = array_merge($array1, $array2);
}

Dengan cara ini kita boleh mengelakkan situasi di mana $arrays1 atau $array2 kosong.

Begitu juga, apabila kita boleh menggunakan fungsi array_merge_recursive() atau + operator, kita juga boleh menggunakan fungsi isset() untuk menentukan sama ada tatasusunan itu kosong.

2 Gunakan fungsi tatasusunan() untuk memulakan tatasusunan

Apabila menggabungkan tatasusunan menggunakan tiga kaedah di atas, kita juga boleh menggunakan fungsi tatasusunan() untuk memulakan tatasusunan apabila tatasusunan adalah. kosong. Ini mengelakkan kegagalan gabungan.

Sebagai contoh, jika kita mempunyai tatasusunan kosong $emptyArray, kita boleh memulakannya seperti ini:

$emptyArray = array();

Dengan cara ini, apabila menggunakan fungsi array_merge(), array_merge_recursive() fungsi atau operator + , jika anda ingin menggabungkan tatasusunan $emptyArray dan $array2, anda boleh melakukan ini:

$resultArray = array_merge($emptyArray, $array2);

Dengan cara ini tidak akan berlaku kegagalan gabungan.

3. Ringkasan

Array ialah salah satu fungsi yang paling berkuasa dalam PHP, dan menggabungkan tatasusunan juga merupakan operasi biasa. Tetapi dalam aplikasi sebenar, kadangkala kita mendapati tatasusunan yang digabungkan itu kosong. Pada masa ini, sebabnya mungkin disebabkan oleh konflik nama kunci, atau ia mungkin disebabkan oleh tatasusunan yang kosong. Untuk mengelakkan situasi ini, kita boleh menggunakan fungsi isset() untuk menentukan sama ada tatasusunan kosong, dan gunakan fungsi tatasusunan() untuk memulakan tatasusunan. Dengan cara ini, kita boleh melengkapkan operasi penggabungan tatasusunan dengan jayanya.

Atas ialah kandungan terperinci Apa yang perlu dilakukan jika tatasusunan kosong selepas php merge. 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