题 PHP:打印关联数组


在PHP中,我有一个像这样的关联数组

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

怎么写 foreach 循环遍历数组并访问数组键和值,以便我可以操作它们(换句话说,我将能够获得 who 和 one 分配给两个变量 $key 和 $value


16
2018-06-21 16:53


起源


它在文档中描述: php.net/manual/en/control-structures.foreach.php。 - Felix Kling
可能重复 PHP - 如何遍历关联数组并获取密钥名称? - Felix Kling


答案:


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

42
2018-06-21 16:54



以及如何格式化输出?就像我有$ a ['who'] = 10.99999,如何将其回显为10.99? (过于狡猾的数字)? - Tu Hoang
@TannerHoang:这是另一个问题,已经回答: 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


@Thiago已经提到了访问密钥和相应值的方法。这当然是正确和首选的解决方案。

但是,因为你说

所以我可以操纵它们

我想建议另外两种方法

  1. 如果您只想操纵该值,请将其作为参考访问

    foreach ($array as $key => &$value) {
      $value = 'some new value';
    }
    
  2. 如果你想操纵键和值,你应该采取另一种方式

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

8
2018-06-21 16:59