たとえば、今配列があります
$array=Array("a",'b','c','d','e','f','g');
ログイン後にコピー
もちろんそれ以外にもあります
出力したい結果は次のとおりです:
a
b
c
d
e
f
g
aa
ab
ac
ad
ae
af
ag
ba
bb
bc
bd
be
bf
bg
ca
cb
cc
…………
gaaaaaaa
がぁぁぁぁぁ
がぁぁぁぁ
がぁぁぁぁ
がぁぁぁぁ
…… ……
以上です これらの文字で構成されるすべての文字列をリストします
ディスカッションへの返信 (解決策)
LZ の質問は少し曖昧なようです。たとえば、文字 a
a はカウントされます。 1 つの aa は 1 つとして数えられるので、aaaaaaaaaaaaaaaaaaaa も 1 つとなります
完了するまでにどのくらい時間がかかりますか?たとえば、アレイがあります。今はアレイがあります。もちろん、それ以上のものがあります
出力したい結果は次のとおりです。 ac
ad
ae
af
ag
ba
bb
bc
bd
be
bf
bg
ca
cb
cc
…………
gaaaaaaa
がぁぁぁぁぁ
がぁぁぁぁ
がぁぁぁぁ
がぁぁぁぁ
… ………
これらの文字で構成できるすべての文字列をリストするだけです
問題ありません、無制限です。 。 。
$array=Array("a",'b','c','d','e','f','g');
for($i=-1; $i foreach($array as $k=>$v){
echo $array[$i].$v."
"; }
これがお役に立てば幸いです~
このプログラムはいつ停止しますか...
問題ありません、無制限です。 。 。
では、いつこのプログラムを停止するのでしょうか...
問題ありません、無制限です。 。 。
電源を抜いたら...
コライダーを作りたいと思います
このプログラムはいつ停止しますか...
問題ありません、無制限に欲しいだけです。 。 。
プラグを抜くと…
虽然楼主需求看上去有些无厘头,但如果设定好终止条件也并非不能实现
在有限个数的前提下,这个算法还是很具挑战性的
我先来的抛砖引玉
$ar = array("a",'b','c');print_r(allot($ar, 4));print_r(allot($ar, 2));function allot($ar, $num) { static $st = array(); //用于缓存中间结果 $res = array(); //用于承载返回结果 if(! $st) { $t = $ar; }else { $t = array(); foreach($ar as $v) { $t = array_merge($t, array_map( function($item, $prefix) { return $prefix . $item; }, $st, array_fill(0, count($st), $v))); } }// foreach($t as $v) echo $v . PHP_EOL; //直接产生输出 $res = $st = $t; if($num > 1) $res = array_merge($res, allot($ar, $num-1)); else $st = array(); //初始缓存,以便下一次调用 return $res;}
ログイン後にコピー
Array
(
[0] => a
[1] => b
[2] => c
[3] => aa
[4] => ab
[5] => ac
[6] => ba
[7] => bb
[8] => bc
[9] => ca
[10] => cb
[11] => cc
[12] => aaa
[13] => aab
[14] => aac
[15] => aba
[16] => abb
[17] => abc
[18] => aca
[19] => acb
[20] => acc
[21] => baa
[22] => bab
[23] => bac
[24] => bba
[25] => bbb
[26] => bbc
[27] => bca
[28] => bcb
[29] => bcc
[30] => caa
[31] => cab
[32] => cac
[33] => cba
[34] => cbb
[35] => cbc
[36] => cca
[37] => ccb
[38] => ccc
[39] => aaaa
[40] => aaab
[41] => aaac
[42] => aaba
[43] => aabb
[44] => aabc
[45] => aaca
[46] => aacb
[47] => aacc
[48] => abaa
[49] => abab
[50] => abac
[51] => abba
[52] => abbb
[53] => abbc
[54] => abca
[55] => abcb
[56] => abcc
[57] => acaa
[58] => acab
[59] => acac
[60] => acba
[61] => acbb
[62] => acbc
[63] => acca
[64] => accb
[65] => accc
[66] => baaa
[67] => baab
[68] => baac
[69] => baba
[70] => babb
[71] => babc
[72] => baca
[73] => bacb
[74] => bacc
[75] => bbaa
[76] => bbab
[77] => bbac
[78] => bbba
[79] => bbbb
[80] => bbbc
[81] => bbca
[82] => bbcb
[83] => bbcc
[84] => bcaa
[85] => bcab
[86] => bcac
[87] => bcba
[88] => bcbb
[89] => bcbc
[90] => bcca
[91] => bccb
[92] => bccc
[93] => caaa
[94] => タクシー
[95] => caac
[96] => キャバ
[97] => タクシー
[98] => cabc
[99] => カカ
[100] => cacb
[101] => cacc
[102] => cbaa
[103] => cbab
[104] => cbac
[105] => cbba
[106] => cbbb
[107] => cbbc
[108] => cbca
[109] => cbcb
[110] => cbcc
[111] => ccaa
[112] => ccab
[113] => ccac
[114] => ccba
[115] => ccbb
[116] => ccbc
[117] => CCCA
[118] => cccb
[119] => cccc
)
配列
(
[0] => a
[1] => b
[2] => c
[3] => aa [4] =& gt; 腹部 [5
[7]
[8]
[10] > CC
)