php求數(shù)組全排列,元素所有組合的方法總結(jié)
更新時(shí)間:2017年03月14日 08:38:25 投稿:jingxian
下面小編就為大家?guī)硪黄猵hp求數(shù)組全排列,元素所有組合的方法總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
本文實(shí)例講述了php求數(shù)組全排列,元素所有組合的方法總結(jié)。
分享給大家供大家參考,具體如下:
<?php
$source = array('pll','我','愛','你','嘿');
sort($source); //保證初始數(shù)組是有序的
$last = count($source) - 1; //$source尾部元素下標(biāo)
$x = $last;
$count = 1; //組合個(gè)數(shù)統(tǒng)計(jì)
echo implode(',', $source), "<br>"; //輸出第一種組合
while (true) {
$y = $x--; //相鄰的兩個(gè)元素
if ($source[$x] < $source[$y]) { //如果前一個(gè)元素的值小于后一個(gè)元素的值
$z = $last;
while ($source[$x] > $source[$z]) { //從尾部開始,找到第一個(gè)大于 $x 元素的值
$z--;
}
/* 交換 $x 和 $z 元素的值 */
list($source[$x], $source[$z]) = array($source[$z], $source[$x]);
/* 將 $y 之后的元素全部逆向排列 */
for ($i = $last; $i > $y; $i--, $y++) {
list($source[$i], $source[$y]) = array($source[$y], $source[$i]);
}
echo implode(',', $source), "<br>"; //輸出組合
$x = $last;
$count++;
}
if ($x == 0) { //全部組合完畢
break;
}
}
echo 'Total: ', $count, "\n";
?>
以上這篇php求數(shù)組全排列,元素所有組合的方法總結(jié)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
php實(shí)現(xiàn)無限級分類實(shí)現(xiàn)代碼(遞歸方法)
近期做的一個(gè)網(wǎng)站需要一個(gè)無限級下拉列表的無限級分級功能,于是就有了下面的作品。2011-01-01
PHP進(jìn)行批量任務(wù)處理不超時(shí)的解決方法
這篇文章主要介紹了PHP進(jìn)行批量任務(wù)處理不超時(shí)的解決方法,結(jié)合實(shí)例形式簡單分析了php結(jié)合ajax進(jìn)行異步處理實(shí)現(xiàn)批量任務(wù)不超時(shí)的相關(guān)技巧,需要的朋友可以參考下2016-07-07
簡單的方法讓你的后臺登錄更加安全(php中加session驗(yàn)證)
通過特定文件為后臺入口注冊session,否則失敗退出。即直接使用原后臺地址將無法登錄后臺。這樣一來,入口文件名的多樣性、可變更性將為你的后臺登錄提供更加安全的環(huán)境2012-08-08
PHP基于方差和標(biāo)準(zhǔn)差計(jì)算學(xué)生成績的穩(wěn)定性示例
這篇文章主要介紹了PHP基于方差和標(biāo)準(zhǔn)差計(jì)算學(xué)生成績的穩(wěn)定性操作,涉及PHP數(shù)學(xué)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-07-07
php命名空間設(shè)計(jì)思想、用法與缺點(diǎn)分析
這篇文章主要介紹了php命名空間設(shè)計(jì)思想、用法與缺點(diǎn),結(jié)合實(shí)例形式分析了php命名空間的概念、用法及相關(guān)的操作注意事項(xiàng),并給出了使用建議,需要的朋友可以參考下2019-07-07

