2013-02-20 74 views
5

我有一個簡單的關聯數組。PHP:如何使用while循環打印關聯數組?

<?php 
$assocArray = array('a' => 1, 'b' => 2, 'c' => 3); 
?> 

僅使用while循環時,如何在此結果中打印?

$a = 1 
$b = 2 
$c = 3 

這是我目前的解決方案,但我認爲這不是最好的方法嗎?

<?php 
$assocArray = array('a' => 1, 'b' => 2, 'c' => 3); 
$keys = array_keys($assocArray); 
rsort($keys); 

while (!empty($keys)) { 
    $key = array_pop($keys); 
    echo $key . ' = ' . $assocArray[$key] . '<br />'; 
}; 
?> 

謝謝。

+0

這樣的:'的foreach($改編爲$鍵=> $值){..}'? – SuperSaiyan 2013-02-20 05:36:55

+0

爲什麼只需要while循環? – 2013-02-20 05:37:58

+0

檢查我的答案隊友它完全如何你想........ – 2013-02-20 05:43:09

回答

8

試試這個語法,這是做這項工作的最佳有效方式...........

while (list($key, $value) = each($array_expression)) { 
     statement 
} 

<?php 


$data = array('a' => 1, 'b' => 2, 'c' => 3); 

print_r($data); 

while (list($key, $value) = each($data)) { 
     echo '$'.$key .'='.$value; 
} 

?> 

對於reference請檢查此鏈接...... ...

Example鏈接在這裏...

+0

謝謝。這就是我正在尋找的:)我沒有在我的項目中使用while循環,只用於foreach循環。 – marknt15 2013-02-20 05:50:56

3

通過陣列環路最好的和最簡單的方法是使用的foreach

foreach ($assocArray as $key => $value) 
     echo $key . ' = ' . $value . '<br />'; 
+0

OP是希望使用while循環而不是'foreach'函數來打印它們。 – 2013-02-20 05:40:22

+0

他問while while循環不是foreach .......... – 2013-02-20 05:42:46

+0

while和foreach沒有太大的區別。最終結果將是一樣的。 – Aris 2013-02-20 07:00:31

1

嘗試此;

$assocarray = array('a' => 1, 'b' => 2, 'c' => 3); 
$keys = array_keys($assocarray); 
rsort($keys); 
while (!empty($keys)) { 
    $key = array_pop($keys); 
    echo $key . ' = ' . $assocarray[$key] . '<br />'; 
};