PHP:如何使用while循环打印关联数组?

时间:2013-02-20 05:33:25

标签: php arrays

我有一个简单的关联数组。

<?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 />';
};
?>

感谢。

5 个答案:

答案 0 :(得分: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个链接...

答案 1 :(得分:3)

循环数组的最佳和最简单的方法是使用foreach

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

答案 2 :(得分: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 />';
};

答案 3 :(得分:0)

我对此有一个简单的解决方案,它将完成工作。

$x = array(0=>10,1=>11,2=>"sadsd");

end($x);    
$ekey = key($x);        
reset($x );

while(true){

    echo "<br/>".key($x)." = ".$x[key($x)];

    if($ekey == key($x) )break;
    next($x);
}

答案 4 :(得分:0)

请尝试以下代码:

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

$obj = new ArrayObject($assocArray);

foreach ( $obj as $key => $value ) {
    echo '$' . $key .'='. $value . "<br/>";
}