【问题标题】:PHP: Printing Associative ArrayPHP:打印关联数组
【发布时间】:2011-09-19 17:14:16
【问题描述】:

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

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

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

【问题讨论】:

标签: php associative-array


【解决方案1】:
foreach ($array as $key => $value) {
    echo "Key: $key; Value: $value\n";
}

【讨论】:

  • 以及如何格式化输出?就像我有 $a['who'] = 10.99999,如何仅将其回显为 10.99? (数字太小)?
  • @TannerHoang:这是另一个问题,已经回答了:stackoverflow.com/search?q=php+format+decimal
  • @Tanner:这感觉完全是另一个问题。看看手册中的sprintf()
  • 确实是另一个问题。无论如何,你应该使用printf("%.2f", $value);
  • 我实际上使用了这个给蒂亚戈foreach循环。 echo $key.": ".number_format($value,2);
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2019-05-28
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    • 2011-06-03
    • 2014-10-25
    • 2017-05-08
    • 2012-04-11
    相关资源
    最近更新 更多