ホームページ  >  記事  >  バックエンド開発  >  すべての非反復配列を生成する方法を尋ねる

すべての非反復配列を生成する方法を尋ねる

WBOY
WBOYオリジナル
2016-06-23 13:45:45887ブラウズ

たとえば、ab
は、
ab
ba
を生成します。 たとえば、 a b c
は、すべての
abc
acb
bac
bca
cab
cba


を生成しますディスカッション (解決策) へ

$str    = 'abc';$res    = Arrangement( $str );print_r($res);function Arrangement($arr = array(), $res = '') {  if(! is_array($arr) ) $arr = str_split($arr);  if(empty($arr)) $array[] = $res;  else foreach($arr AS $k => $v) {    unset($arr[$k]);    foreach( Arrangement($arr, $res . $v) AS $t) $array[] = $t;    $arr[$k]    = $v;  }  return  $array;}
Array(    [0] => abc    [1] => acb    [2] => bca    [3] => bac    [4] => cab    [5] => cba)

ありがとうとても、私が望んでいる効果です

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。