Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah saya boleh menjana semua kemungkinan kombinasi dan pilih atur elemen dalam tatasusunan satu dimensi dalam PHP?
Dalam artikel ini, kita akan menyelami kaedah untuk mendapatkan semula semua kemungkinan gabungan unsur dalam tatasusunan satu dimensi dalam PHP. Berbeza dengan penyelesaian lain, pendekatan ini memastikan kedua-dua gabungan dan pilih atur dipertimbangkan.
Memandangkan tatasusunan rentetan atau nombor, matlamatnya adalah untuk menjana semua kemungkinan gabungan unsur, mengambil kira susunan yang berbeza. Sebagai contoh, 'Alpha Beta' dan 'Beta Alpha' ialah gabungan berbeza yang harus disertakan dalam output.
Penyelesaian PHP yang disediakan menggunakan algoritma carian pertama mendalam rekursif:
<code class="php"><?php $array = array('Alpha', 'Beta', 'Gamma', 'Sigma'); function depth_picker($arr, $temp_string, &$collect) { if ($temp_string != "") $collect []= $temp_string; for ($i=0, $iMax = sizeof($arr); $i < $iMax; $i++) { $arrcopy = $arr; $elem = array_splice($arrcopy, $i, 1); // removes and returns the i'th element if (sizeof($arrcopy) > 0) { depth_picker($arrcopy, $temp_string ." " . $elem[0], $collect); } else { $collect []= $temp_string. " " . $elem[0]; } } } $collect = array(); depth_picker($array, "", $collect); print_r($collect); ?></code>
Kod yang disediakan menghasilkan output berikut, yang mengandungi semua gabungan dan pilih atur elemen dalam tatasusunan yang diberikan:
Array ( [0] => Alpha [1] => Alpha Beta [2] => Alpha Beta Gamma [3] => Alpha Beta Gamma Sigma [4] => Alpha Beta Sigma [5] => Alpha Beta Sigma Gamma [6] => Alpha Gamma [7] => Alpha Gamma Beta [8] => Alpha Gamma Beta Sigma [9] => Alpha Gamma Sigma [10] => Alpha Gamma Sigma Beta [11] => Alpha Sigma [12] => Alpha Sigma Beta [13] => Alpha Sigma Beta Gamma [14] => Alpha Sigma Gamma [15] => Alpha Sigma Gamma Beta [16] => Beta [17] => Beta Alpha [18] => Beta Alpha Gamma [19] => Beta Alpha Gamma Sigma [20] => Beta Alpha Sigma [21] => Beta Alpha Sigma Gamma [22] => Beta Gamma [23] => Beta Gamma Alpha [24] => Beta Gamma Alpha Sigma [25] => Beta Gamma Sigma [26] => Beta Gamma Sigma Alpha [27] => Beta Sigma [28] => Beta Sigma Alpha [29] => Beta Sigma Alpha Gamma [30] => Beta Sigma Gamma [31] => Beta Sigma Gamma Alpha [32] => Gamma [33] => Gamma Alpha [34] => Gamma Alpha Beta [35] => Gamma Alpha Beta Sigma [36] => Gamma Alpha Sigma [37] => Gamma Alpha Sigma Beta [38] => Gamma Beta [39] => Gamma Beta Alpha [40] => Gamma Beta Alpha Sigma [41] => Gamma Beta Sigma [42] => Gamma Beta Sigma Alpha [43] => Gamma Sigma [44] => Gamma Sigma Alpha [45] => Gamma Sigma Alpha Beta [46] => Gamma Sigma Beta [47] => Gamma Sigma Beta Alpha [48] => Sigma [49] => Sigma Alpha [50] => Sigma Alpha Beta [51] => Sigma Alpha Beta Gamma [52] => Sigma Alpha Gamma [53] => Sigma Alpha Gamma Beta [54] => Sigma Beta [55] => Sigma Beta Alpha [56] => Sigma Beta Alpha Gamma [57] => Sigma Beta Gamma [58] => Sigma Beta Gamma Alpha [59] => Sigma Gamma [60] => Sigma Gamma Alpha [61] => Sigma Gamma Alpha Beta [62] => Sigma Gamma Beta [63] => Sigma Gamma Beta Alpha )
Atas ialah kandungan terperinci Bagaimanakah saya boleh menjana semua kemungkinan kombinasi dan pilih atur elemen dalam tatasusunan satu dimensi dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!