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

问题描述 投票:7回答:5

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

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

谢谢。

php arrays
5个回答
9
投票

尝试这种语法,这是完成工作的最佳方法。...........

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链接在这里...


3
投票

最简单的遍历数组的方法是使用foreach

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

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

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);
}

0
投票

尝试下面的代码:

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

$obj = new ArrayObject($assocArray);

foreach ( $obj as $key => $value ) {
    echo '$' . $key .'='. $value . "<br/>";
}
© www.soinside.com 2019 - 2024. All rights reserved.