您好,登錄后才能下訂單哦!
這篇文章主要講解了“PHP輸出輸出指定值的所有組合”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PHP輸出輸出指定值的所有組合”吧!
實例如下:
<?php /*分治法——直接選擇 比如說a b c 首先將a之后的字符依次與a進行交換 1 b,a,c 2 c,b,a 注意這里少了一個原始數據 a,b,c。需要把原始數據也算如排列中 3 a,b,c 然后把字符移到第二個位置,將第二個位置之后的數分別與第二個位置的數進行交換 1 b,a,c ===> 11 b,c,a 2 c,b,a ===> 21 c,a,b 3 a,b,c ===> 31 a,c,b **/ function zuhe($arr,$begin){ if(!is_array($arr)) return ; $N = count($arr); if($begin == $N-1 || $begin >$N || $begin <0) return ; if($begin == 0){ print_r($arr);//輸出原始數據 echo '</br>'; } //循環將初始值與第i個值交換后進行組合 for($i = $begin;$i < $N;$i++){ $t = $arr[$begin]; $arr[$begin] = $arr[$i]; $arr[$i] = $t; if($i!==$begin){//i==begin時的數已經輸出過 print_r($arr); echo '</br>'; } zuhe($arr,$begin+1); $t = $arr[$begin]; $arr[$begin] = $arr[$i]; $arr[$i] = $t; } } $arr = array('a','b','c','d'); //zuhe($arr,0); /*分治法——直接插入 初始時從0個元素開始,輸出初始序列,為組合的一個序列 當在來一個元素時只需將該元素放在該元素之前的元素組的不同的位置即組成了不同的排列 如已有元素組為a,b.新元素為c,把c分別與a,b進行交換即可(a,c,b);(c,b,a),在現有的排列上在新增元素 重復執行以上步驟 */ function zuhe2($arr,$begin){ if($begin==0) { print_r($arr); echo "</br>"; //zuhe2($arr,$begin+1); } if($begin >= count($arr)) return ; zuhe2($arr,$begin+1);//begin時的排列上一次已產生,直接新增元素 for($i = $begin-1;$i>=0;$i--){ $t = $arr[$begin]; $arr[$begin] = $arr[$i]; $arr[$i] = $t; print_r($arr); echo "</br>"; zuhe2($arr,$begin +1); $t = $arr[$begin]; $arr[$begin] = $arr[$i]; $arr[$i] = $t; } }
感謝各位的閱讀,以上就是“PHP輸出輸出指定值的所有組合”的內容了,經過本文的學習后,相信大家對PHP輸出輸出指定值的所有組合這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。