2017-10-12 64 views
0

在php中,我必須打印一些看起來像「」的國會大廈是「」的東西。PHP鍵和值capitols和國家

我面臨的挑戰是,當我嘗試使用while循環對數據進行排序時,我沒有收到結果。我明白,在這個例子中,我的國家是關鍵,大寫字母就是價值。所以我用ksort以及asort來讓他們都返回。我得到我的回聲聲明,但沒有從我的$索引或$歐盟聲明。試圖找出我出錯的地方以及我可以做得更好的建議?思考?謝謝

P.S我想我可能需要使用一個foreach循環,但老實說我可以使用數組中的while循環返回數據。

<? 

$EU = array("Italy"=>"Rome", "Luxembourg"=>"Luxembourg", 
"Belgium"=> "Brussels", "Denmark"=>"Copenhagen", 
"Finland"=>"Helsinki", "France" => "Paris", 
"Slovakia"=>"Bratislava", "Slovenia"=>"Ljubljana", 
"Germany" => "Berlin", "Greece" => "Athens", 
"Ireland"=>"Dublin", "Netherlands"=>"Amsterdam", 
"Portugal"=>"Lisbon", "Spain"=>"Madrid", 
"Sweden"=>"Stockholm", "United Kingdom"=>"London", 
"Cyprus"=>"Nicosia", "Lithuania"=>"Vilnius", 
"Czech Republic"=>"Prague", "Estonia"=>"Tallin", 
"Hungary"=>"Budapest", "Latvia"=>"Riga", "Malta"=>"Valetta", 
"Austria" => "Vienna", "Poland"=>"Warsaw"); 

$index = 0; 
ksort($EU); 
asort($index); 
While ($index <11) 
    { 
    echo " The Capitol of {$EU[$index]} is. <br/>"; 
    $index++; 
    } 


?> 
+0

如果你看看PHP給你的警告,你將會至少修復排序問題。我想你可能需要查看ksort,asort的API文檔。看看這裏:http://sandbox.onlinephpfunctions.com/ – jdv

+0

_「所以我使用kso​​rt以及asort來讓它們都返回_ _ - 這兩個_sort_數組,但它們並沒有改變任何關於它的結構。你真的在尋找函數array_keys和/或array_values也許......? – CBroe

+0

'$ index = 0; asort($ index);' - 這沒有任何意義,你不能「排序」一個整數。 – CBroe

回答

1

也許會給"Rome"指數爲"Italy",不是一個數字。

嘗試foreach

foreach ($EU as $nation => $capitol) { 
echo "The capitol of {$nation} is {$capitol}.\n"; 
} 

併線asort($index)是沒有意義的,你實際上整理了一些。

+0

我也爲foreach()投票。自我終止,乾淨,沒有大驚小怪或危險的猖獗循環(那一段時間()有很好的機會)。會:echo「國會大廈的{$ nation}是{$ capitol}。\ n」;你的例子會更好嗎? – IncredibleHat

+0

噢,我的上帝真的寫過嗎?你是對的。 – NoImaginationGuy