Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk mengatur dan menggabungkan tatasusunan php
Array ialah jenis data yang sangat biasa dan penting dalam pembangunan pengaturcaraan. Permutasi dan gabungan adalah operasi biasa dalam pemprosesan tatasusunan Melalui pilih atur dan gabungan, unsur-unsur dalam tatasusunan boleh disusun dan digabungkan dengan cara yang berbeza untuk mencapai tujuan pemprosesan yang berbeza. Dalam artikel ini, kami akan memberi tumpuan kepada cara menggunakan bahasa pengaturcaraan PHP untuk melaksanakan gabungan tatasusunan.
1. Apakah susunan dan gabungan tatasusunan PHP
Pertama sekali, kita perlu memahami apa itu susunan dan gabungan tatasusunan PHP. Ringkasnya, pilih atur dan gabungan bermaksud menggabungkan elemen dalam tatasusunan dengan cara yang berbeza untuk menjana set data baharu. Secara khusus, pilih atur adalah untuk menyusun semula semua elemen dalam tatasusunan dalam susunan manakala gabungan adalah untuk menggabungkan elemen dalam tatasusunan dalam susunan yang berbeza untuk menjana berbilang set data baharu.
Sebagai contoh, untuk tatasusunan yang mengandungi nombor 1, 2, 3, 4, pilih atur mungkin menghasilkan keputusan berikut:
1,2,3,4
1,2 ,4, 3
1,3,2,4
1,3,4,2
1,4,2,3
1,4,3,2
2,1 ,3, 4
2,1,4,3
……
dan gabungan boleh menghasilkan keputusan berikut:
1,2
1,3
1,4
2,3
2,4
3,4
……
2 Seterusnya kami akan memperkenalkan beberapa kaedah A untuk melaksanakan pilih atur tatasusunan dan gabungan dalam PHP.
1. Gunakan gelung untuk merealisasikan
Pertama, kita boleh menggunakan gelung untuk merealisasikan pilih atur dan gabungan tatasusunan. Secara khusus, kita boleh menggunakan dua gelung bersarang untuk menggabungkan setiap elemen dalam tatasusunan dengan elemen lain untuk menjana data baharu. Berikut ialah contoh kod ringkas:
<?php $arr = array(1, 2, 3, 4); $result = array(); for ($i = 0; $i < count($arr); $i++) { for ($j = 0; $j < count($arr); $j++) { if ($arr[$i] != $arr[$j]) { $result[] = array($arr[$i], $arr[$j]); } } } print_r($result); ?>
Dalam kod di atas, kami menggunakan dua gelung bersarang untuk menggabungkan setiap elemen dalam tatasusunan asal $arr dengan elemen lain. Antaranya, jika nilai kedua-dua elemen adalah sama, gelung ini dilangkau, jika tidak nilai kedua-dua elemen digunakan sebagai tatasusunan baru dan dimasukkan ke dalam tatasusunan hasil $result.
2. Gunakan rekursi untuk melaksanakan
Selain menggunakan untuk gelung, kami juga boleh menggunakan rekursi untuk melaksanakan gabungan tatasusunan. Secara khusus, kita boleh mentakrifkan fungsi rekursif yang membahagikan tatasusunan asal secara rekursif kepada berbilang subarray sehingga panjang subarray ialah 1, dan kemudian menggabungkan subarray ke dalam tatasusunan baharu. Berikut ialah contoh kod ringkas:
<?php function array_combination($arr){ $len = count($arr); if($len == 1){ return $arr; } $result = array(); for($i=0; $i<$len; $i++){ $tmp_arr = $arr; unset($tmp_arr[$i]); $tmp_arr = array_values($tmp_arr); $tmp_result = array_combination($tmp_arr); foreach($tmp_result as $val){ $val[] = $arr[$i]; $result[] = $val; } } return $result; } $arr = array(1,2,3); $result = array_combination($arr); print_r($result); ?>
Dalam kod di atas, kami mentakrifkan array_combination fungsi rekursif untuk membahagi tatasusunan asal secara rekursif kepada berbilang sub-tatasusunan. Jika panjang subarray ialah 1, subarray dikembalikan secara langsung jika tidak, ia memanggil dirinya secara rekursif dan membelah subarray semula sehingga panjang subarray ialah 1. Akhir sekali, kami menggabungkan subarrays ke dalam tatasusunan baharu dalam susunan yang berbeza.
3. Soalan dan Penyelesaian Lazim
Bagaimana untuk mengalih keluar elemen pendua daripada tatasusunan PHP?<?php $arr = array(1,2,2,3,4,1); $result = array_unique($arr); print_r($result); ?>
Dalam kod di atas, kami menggunakan fungsi array_unique() untuk menjana tatasusunan baharu selepas mengalih keluar elemen pendua daripada tatasusunan asal $arr.
Bagaimana untuk menjana semua gabungan tatasusunan?<?php $arr = array(1, 2, 3); $result = array(); for ($i = 0; $i < count($arr); $i++) { for ($j = 0; $j < count($arr); $j++) { if ($arr[$i] != $arr[$j]) { for ($k = 0; $k < count($arr); $k++) { if ($arr[$i] != $arr[$k] && $arr[$j] != $arr[$k]) { $result[] = array($arr[$i], $arr[$j], $arr[$k]); } } } } } print_r($result); ?>
Dalam kod di atas, kami menggunakan tiga lapisan untuk gelung untuk menjana semua pilih atur dan gabungan tatasusunan asal.
4. Ringkasan
Dalam artikel ini, kami memperkenalkan kaedah pelaksanaan susunan dan gabungan tatasusunan PHP dan penyelesaian kepada masalah biasa. Dalam pembangunan sebenar, susunan dan gabungan tatasusunan adalah operasi yang sangat biasa, dan kaedah pelaksanaan yang berbeza perlu dipilih mengikut keperluan khusus untuk menyelesaikan tugas pengaturcaraan dengan lebih baik. Apabila menggunakan kaedah pilih atur dan gabungan, anda perlu memberi perhatian kepada butiran seperti penyahduplikasian dan susunan tatasusunan untuk memastikan ketepatan dan kecekapan program.
Atas ialah kandungan terperinci Bagaimana untuk mengatur dan menggabungkan tatasusunan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!