字符串
$string = 'a,b,c,d,e';
想进行排序,比如排序后变为 $string = 'b,a,c,d,e'; $string = 'b,a,d,c,e';等等,类似排列组合,但不需要任意两个重复字母
$string = 'a,b,c,d,e';
想进行排序,比如排序后变为 $string = 'b,a,c,d,e'; $string = 'b,a,d,c,e';等等,类似排列组合,但不需要任意两个重复字母
$res = arrange(str_split($str));
print_r($res);
function arrange($arr = array(), $res = '')
{
if(empty($arr))
{
$array[] = $res;
}
else
{
foreach($arr AS $k => $v)
{
unset($arr[$k]);
foreach(arrange($arr, $res . $v) AS $t)
{
$array[] = $t;
}
$arr[$k] = $v;
}
}
return $array;
}Array
(
[0] => ABCDE
[1] => ABCED
[2] => ABDEC
[3] => ABDCE
[4] => ABECD
[5] => ABEDC
[6] => ACDEB
[7] => ACDBE
[8] => ACEBD
[9] => ACEDB
[10] => ACBDE
[11] => ACBED
[12] => ADEBC
[13] => ADECB
[14] => ADBCE
[15] => ADBEC
[16] => ADCEB
[17] => ADCBE
[18] => AEBCD
[19] => AEBDC
[20] => AECDB
[21] => AECBD
[22] => AEDBC
[23] => AEDCB
[24] => BCDEA
[25] => BCDAE
[26] => BCEAD
[27] => BCEDA
[28] => BCADE
[29] => BCAED
[30] => BDEAC
[31] => BDECA
[32] => BDACE
[33] => BDAEC
[34] => BDCEA
[35] => BDCAE
[36] => BEACD
[37] => BEADC
[38] => BECDA
[39] => BECAD
[40] => BEDAC
[41] => BEDCA
[42] => BACDE
[43] => BACED
[44] => BADEC
[45] => BADCE
[46] => BAECD
[47] => BAEDC
[48] => CDEAB
[49] => CDEBA
[50] => CDABE
[51] => CDAEB
[52] => CDBEA
[53] => CDBAE
[54] => CEABD
[55] => CEADB
[56] => CEBDA
[57] => CEBAD
[58] => CEDAB
[59] => CEDBA
[60] => CABDE
[61] => CABED
[62] => CADEB
[63] => CADBE
[64] => CAEBD
[65] => CAEDB
[66] => CBDEA
[67] => CBDAE
[68] => CBEAD
[69] => CBEDA
[70] => CBADE
[71] => CBAED
[72] => DEABC
[73] => DEACB
[74] => DEBCA
[75] => DEBAC
[76] => DECAB
[77] => DECBA
[78] => DABCE
[79] => DABEC
[80] => DACEB
[81] => DACBE
[82] => DAEBC
[83] => DAECB
[84] => DBCEA
[85] => DBCAE
[86] => DBEAC
[87] => DBECA
[88] => DBACE
[89] => DBAEC
[90] => DCEAB
[91] => DCEBA
[92] => DCABE
[93] => DCAEB
[94] => DCBEA
[95] => DCBAE
[96] => EABCD
[97] => EABDC
[98] => EACDB
[99] => EACBD
[100] => EADBC
[101] => EADCB
[102] => EBCDA
[103] => EBCAD
[104] => EBDAC
[105] => EBDCA
[106] => EBACD
[107] => EBADC
[108] => ECDAB
[109] => ECDBA
[110] => ECABD
[111] => ECADB
[112] => ECBDA
[113] => ECBAD
[114] => EDABC
[115] => EDACB
[116] => EDBCA
[117] => EDBAC
[118] => EDCAB
[119] => EDCBA
)