8

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

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

谢谢。

4

5 回答 5

11

试试这个语法,这是完成工作的最有效方法............

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

?>

如需参考,请查看此链接............

示例链接在这里...

于 2013-02-20T05:39:29.207 回答
3

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

 foreach ($assocArray as $key => $value)
        echo $key . ' = ' . $value . '<br />';
于 2013-02-20T05:36:18.633 回答
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 />';
};
于 2013-02-20T05:39:10.813 回答
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);
}
于 2020-01-15T08:02:08.853 回答
0

试试下面的代码:

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

$obj = new ArrayObject($assocArray);

foreach ( $obj as $key => $value ) {
    echo '$' . $key .'='. $value . "<br/>";
}
于 2020-01-15T08:06:44.690 回答