2013-02-20 93 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 />'; 
};