2010-12-20 79 views
2

我試圖從一個單一的線,AZ陣列吐出每個字母的字母。試圖用php編寫一個簡單的字母程序

這是我的代碼看起來像至今:

$alphabet = array ("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"); 

while ($alphabet) { 
    echo $alphabet; 
    $alphabet; 
} 

林還挺停留在這一部分,不知道如何寫還有什麼使這項工作。有什麼建議麼?

+1

按照預期的環不起作用,因爲你不循環遍歷數組。你只是在評估'$ alphabet',它的計算結果爲'true'。你有一個無限循環。 – 2010-12-20 05:06:34

回答

1
$alphabet = array ("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"); 

foreach($alphabet as $letter) { 
echo $letter; 
} 
10

使用rangearray_walk

function e($s) { echo $s; } 
array_walk(range('A', 'Z'), 'e'); 

工作例如:http://codepad.org/pedjOlY9

+0

感謝您的工作代碼。作爲即時學習PHP,是否有可能使用while循環而不是foreach來說相同的東西? – WillingLearner 2010-12-20 06:00:23

+1

@WillingLearner:當然你可以做到。每個循環都可以變成一個while循環,因爲它是最基本的循環。但是你必須編寫更多的代碼,並且它的可讀性會降低。始終遵循最容易理解的解決方案。 'foreach'很容易,因爲這個名字已經暗示對其他東西的每個元素都做了一些事情。 – 2010-12-20 21:44:42

+0

@Felix當正確的答案不被接受時,我真的不喜歡它。 :( – 2010-12-22 02:57:06

0

我不知道爲什麼你需要數組... 這就是爲什麼我們的ASCII碼。 你可以做的是這樣的:

for ($i = 65; $i <=90; $i++) 
{ 
    echo chr($i) . PHP_EOL; 
} 

CHR()顯示字符的ASCII地圖 - 點擊此處查看:http://www.danshort.com/ASCIImap/。如果你想做小寫 - 只需使用strtolower()或97-122之間的數字。 PHP_EOL是一個內置常量,可以輸出行尾。你可以改變它。「
」如果你在做HTML。

我覺得範圍有點長,但它仍然有效。

0

這可能是幫助全力爲您

$alphabet = array ("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"); 

$c = sizeof($alphabet);  
for($i= 0; $i < $c ; $i++) {  
    echo $alphabet[$i];  
} 

,你可以使用count($字母)代替的sizeof()內置函數