2014-09-05 83 views
0

我試圖實現所有可能的2個字母組合的循環。 喜歡的東西循環2個字母的範圍

foreach(range(aa,zz) as $i) {...}

我目前的解決辦法是:

foreach (range(a, z) as $first) { 
    foreach (range(a, z) as $second) { 
     //all 2 letter combinations 
     echo $first.$second; 
    } 
} 

這讓我擔心,如果我需要的所有可能的10個字母組合,將有涉及10個循環。

有沒有更好的方法來實現這一目標?

+0

如果你需要做一些141萬億次(= 26^10)次,那麼你可能不應該使用PHP。 – 2014-09-05 14:44:51

回答

1

,你可以在循環使用一個簡單的for循環的字母:

for ($letter = 'aa'; $letter != 'aaa'; ++$letter) { 
    echo $letter . '<br>'; 
} 

輸出:

aa 
ab 
... 
zy 
zz 
+0

PHP中的字符串增量。尼斯 – 2014-09-05 14:24:53

+1

@GundarsMēness我用適當的方式更新了我的答案。 (停止循環而不使用中斷)我對char/string比較感到困惑。 – Sugar 2014-09-05 15:57:07

+0

非常好。 <°))))))> – 2014-09-06 03:42:00

0
$a = array(1,2,3,4,5,6,7,8,9,0); 
$b = array('q','r','s','t','u','v','w','x','y','z'); 
for($i = 26;$i <= 1000;$i++) 
    echo str_replace($a,$b,base_convert ($i, 10 , 26))."<br />"; 

只是把正確的開始和結束位置。