PHP: 打印关联数组

27

在PHP中,我有一个关联数组,如下所示

$a = array('who' => 'one', 'are' => 'two', 'you' => 'three');

如何编写一个foreach循环,遍历数组并访问数组键和值,以便我可以操作它们(换句话说,我将能够将whoone分配给两个变量$key$value)?


5
文档中有描述:http://php.net/manual/zh/control-structures.foreach.php。 - Felix Kling
1
可能是重复的问题 [PHP-如何循环遍历关联数组并获取键名?] (https://dev59.com/KnI-5IYBdhLWcg3wPF12) - Felix Kling
2个回答

53
foreach ($array as $key => $value) {
    echo "Key: $key; Value: $value\n";
}

如何格式化输出?比如我有 $a['who'] = 10.99999,如何只将其作为 10.99 输出(保留两位小数)? - Tu Hoang
4
@TannerHoang:那是另一个问题,已经有答案了:http://stackoverflow.com/search?q=php+format+decimal - Felix Kling
@Tanner:这感觉就像是另一个问题。请查看手册中的sprintf()函数。 - KingCrunch
这确实是另一个问题。无论如何,您应该使用 printf("%.2f", $value); - Thiago Silveira
我实际上使用了Thiago给出的foreach循环。 echo $key.": ".number_format($value,2); - Tu Hoang

8
@Thiago已经提到了访问键和相应值的方法。这当然是正确且首选的解决方案。
然而,因为你说:
“所以我可以操纵它们”
我想提出另外两种方法。
  1. If you only want to manipulate the value, access it as reference

    foreach ($array as $key => &$value) {
      $value = 'some new value';
    }
    
  2. If you want to manipulate both the key and the value, you should going an other way

    foreach (array_keys($array) as $key) {
      $value = $array[$key];
      unset($array[$key]); // remove old key
      $array['new key'] = $value; // set value into new key
    }
    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接