PHP實現輸出多個元素的排列或組合的方法

來源:互聯網
上載者:User
本篇文章主要介紹PHP實現輸出多個元素的排列或組合的方法,感興趣的朋友參考下,希望對大家有所協助。

執行個體如下:

<?php$arr = array('a','b','c','d');$result = array();$t = getCombinationToString($arr, 1);print_r($t);$t = getCombinationToString($arr, 2);$t2 = getunique($t);print_r($t2);$t = getCombinationToString($arr, 3);$t2 = getunique($t);print_r($t2);$t = getCombinationToString($arr, 4);$t2 = getunique($t);print_r($t2);function getunique($t){$t2 = array();//print_r($t);for($i=0;$i<count($t);$i++){$count_list = array_count_values($t[$i]);$flag = 1;foreach($count_list as $ck=>$cv){if($cv>1){$flag = 0;break;}}if($flag){sort($t[$i]);$flag2 = 1;if($t2){foreach($t2 as $t2k=>$t2v){if($t[$i]==$t2v){$flag2 = 0;break;}}}if($flag2){$t2[] = $t[$i];}}}return $t2;}function getCombinationToString($arr, $m) {if ($m ==1) { return $arr;}$result = array();$tmpArr = $arr;unset($tmpArr[0]);for($i=0;$i<count($arr);$i++) {$s = $arr[$i];$ret = getCombinationToString(array_values($tmpArr), ($m-1), $result);foreach($ret as $row) {//$result[] = $s . $row;$temp = array();$temp[] = $s;if(is_array($row)){$temp = array_merge($temp,$row);}else{$temp[] = $row;}sort($temp);$result[] = $temp;}} return $result;}?>

共15種排列結果。

以上就是本文的全部內容,希望對大家的學習有所協助。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.