Rumah > Artikel > pembangunan bahagian belakang > Kombinasi nombor dua dimensi PHP tidak mengalih keluar pendua
Dalam PHP, kita selalunya perlu menggunakan tatasusunan, dan selalunya kami perlu menggabungkan tatasusunan, seperti menggabungkan dua tatasusunan menjadi satu tatasusunan atau menggabungkan berbilang tatasusunan menjadi satu tatasusunan. Apabila ia datang untuk menggabungkan tatasusunan dua dimensi, kita mungkin menghadapi masalah, iaitu tatasusunan yang digabungkan tidak akan menyahduplikasi secara automatik. Artikel ini akan memperkenalkan masalah dan penyelesaian gabungan nombor dua dimensi PHP tanpa penduaan.
1. Apakah tatasusunan dua dimensi
Dalam PHP, tatasusunan ialah struktur data yang sangat penting, dan setiap data mempunyai nilai dan indeks. Tatasusunan dua dimensi ialah tatasusunan bersarang dalam tatasusunan lain, iaitu setiap elemen ialah tatasusunan.
2. Tatasusunan dua dimensi dalam PHP
Dalam PHP, terdapat dua cara untuk mewakili tatasusunan dua dimensi, satu adalah menggunakan fungsi tatasusunan() dan satu lagi adalah menggunakan sintaks [] Sugar, berikut ialah contoh untuk menggambarkan:
// 使用array()函数表示二维数组 $students = array( array('name' => '张三', 'age' => 18), array('name' => '李四', 'age' => 19), array('name' => '王五', 'age' => 20) ); // 使用[]语法糖表示二维数组 $students = [ ['name' => '张三', 'age' => 18], ['name' => '李四', 'age' => 19], ['name' => '王五', 'age' => 20] ];
3 Penggabungan tatasusunan dua dimensi dalam PHP
PHP menyediakan fungsi array_merge() untuk menggabungkan tatasusunan gabungkan berbilang tatasusunan. Kembalikan tatasusunan baharu, kod sampel adalah seperti berikut:
$students1 = [ ['name' => '张三', 'age' => 18], ['name' => '李四', 'age' => 19], ['name' => '王五', 'age' => 20] ]; $students2 = [ ['name' => '赵六', 'age' => 21], ['name' => '孙七', 'age' => 22], ]; $students = array_merge($students1, $students2); print_r($students);
Hasil output adalah seperti berikut:
Array ( [0] => Array ( [name] => 张三 [age] => 18 ) [1] => Array ( [name] => 李四 [age] => 19 ) [2] => Array ( [name] => 王五 [age] => 20 ) [3] => Array ( [name] => 赵六 [age] => 21 ) [4] => Array ( [name] => 孙七 [age] => 22 ) )
Kita dapat melihat bahawa menggunakan fungsi array_merge() boleh digabungkan dengan mudah dua tatasusunan menjadi satu tatasusunan. Walau bagaimanapun, apabila terdapat unsur pendua dalam tatasusunan yang digabungkan, tatasusunan yang digabungkan tidak akan dinyahduplikasi secara automatik, seperti yang ditunjukkan di bawah:
$students1 = [ ['name' => '张三', 'age' => 18], ['name' => '李四', 'age' => 19], ['name' => '王五', 'age' => 20] ]; $students2 = [ ['name' => '李四', 'age' => 19], ['name' => '孙七', 'age' => 22], ]; $students = array_merge($students1, $students2); print_r($students);
Hasil output adalah seperti berikut:
Array ( [0] => Array ( [name] => 张三 [age] => 18 ) [1] => Array ( [name] => 李四 [age] => 19 ) [2] => Array ( [name] => 王五 [age] => 20 ) [3] => Array ( [name] => 李四 [age] => 19 ) [4] => Array ( [name] => 孙七 [age] => 22 ) )
Kita dapat melihatnya ternyata terdapat dua elemen pendua dalam tatasusunan yang digabungkan [nama => '李思', umur => 19].
4. Penyelesaian kepada masalah gabungan nombor dua dimensi PHP tidak membuang pendua
Untuk menyelesaikan masalah gabungan nombor dua dimensi PHP tidak mengeluarkan pendua, kita boleh menggunakan fungsi array_unique(). Fungsi ini boleh digunakan untuk mengalih keluar elemen pendua daripada tatasusunan dan mengembalikan tatasusunan bukan pendua baharu.
Kod sampel adalah seperti berikut:
$students1 = [ ['name' => '张三', 'age' => 18], ['name' => '李四', 'age' => 19], ['name' => '王五', 'age' => 20] ]; $students2 = [ ['name' => '李四', 'age' => 19], ['name' => '孙七', 'age' => 22], ]; $students = array_merge($students1, $students2); $students = array_unique($students, SORT_REGULAR); print_r($students);
Hasil output adalah seperti berikut:
Array ( [0] => Array ( [name] => 张三 [age] => 18 ) [1] => Array ( [name] => 李四 [age] => 19 ) [2] => Array ( [name] => 王五 [age] => 20 ) [4] => Array ( [name] => 孙七 [age] => 22 ) )
Kita dapat melihat bahawa menggunakan fungsi array_unique() boleh menggabungkan tatasusunan yang digabungkan dengan mudah . Akhir sekali, Dapatkan tatasusunan tanpa unsur pendua.
5. Ringkasan
Artikel ini memperkenalkan masalah dan penyelesaian gabungan nombor dua dimensi PHP tanpa deduplikasi, kita dapat mengetahui bahawa walaupun ia sangat mudah digunakan fungsi array_merge() Cantumkan tatasusunan, tetapi apabila ia melibatkan tatasusunan dua dimensi, cantuman itu tidak akan menyahduplikasi secara automatik Anda perlu menggunakan fungsi array_unique() untuk menyahduplikasi untuk mendapatkan tatasusunan baharu tanpa pendua.
Atas ialah kandungan terperinci Kombinasi nombor dua dimensi PHP tidak mengalih keluar pendua. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!