すべての非反復配列を生成する方法を尋ねる
この投稿は、2014-11-12 19:06:14 に wxinlin によって最終編集されました たとえば、ab
は
abba
たとえば、a b c
は、すべての
abc
acb
bac
bca
cab
cba
を生成します--- - --解決策のアイデア-------
$str = 'abc';<br />$res = Arrangement( $str );<br />print_r($res);<br /><br />function Arrangement($arr = array(), $res = '') {<br /> if(! is_array($arr) ) $arr = str_split($arr);<br /> if(empty($arr)) $array[] = $res;<br /> else foreach($arr AS $k => $v) {<br /> unset($arr[$k]);<br /> foreach( Arrangement($arr, $res . $v) AS $t) $array[] = $t;<br /> $arr[$k] = $v;<br /> }<br /> return $array;<br />}
ログイン後にコピー
Array<br />(<br /> [0] => abc<br /> [1] => acb<br /> [2] => bca<br /> [3] => bac<br /> [4] => cab<br /> [5] => cba<br />)<br /><br />
ログイン後にコピー