我有一个简单的关联数组。
<?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 :(得分: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/>";
}