【问题标题】:How to add the values from a foreach loop php如何从foreach循环php中添加值
【发布时间】:2017-12-06 20:00:11
【问题描述】:

我有一个 foreach 循环,当我回显 $val_tex 时,它会输出我想要添加的总数,它会输出一个数字,如“4911165”,但如果我用中断标签回显它,它会给我正确的值。好像

49

1

1

1

65

我的问题是如何获得应该等于“117”的所有值的总和

$val_tex = array();

foreach ( $get_seller as $keys ) {

     $val_tex = $keys['total']; 

}                                                           

【问题讨论】:

  • echo array_sum(array_column($get_seller, 'total'));
  • 我喜欢这个人没有与任何人互动,甚至懒得回应现在是否有任何工作。

标签: php


【解决方案1】:

您必须在 foreach 循环中将它们添加在一起 ​​- 有一种简单的方法可以做到这一点 $total += $keys['total'];这只是一种更简单的说法 $total = $total + $keys['total'];

还有其他方法 - 例如$total = array_sum(array(1,2,3,4)); // == 10。要从单个列中获取总和,您首先会得到一个仅包含特定列中的值的数组:

// an array of the values from that column
$arrayTotall = array_column($keys, 'total'); 
$total = array_sum($arrayTotals);

【讨论】:

  • 非常正确,@IncredibleHat,但这不是一个关于微优化(或代码打高尔夫球)的网站,它是为了了解事物。如果您不首先了解基本概念,那么将您所知道的以更“优雅”的方式组合起来并不意味着什么——这就是问题(和答案)的意义所在。
【解决方案2】:

你的 for each 需要另一个变量来添加它们:

foreach ( $get_seller as $keys ) {

     $val_tex = $keys['total']; 
     $sum = += $val_tex
//or...
     $val_tex += $keys['total']; 
//depending on how you want to us val_tex

} 

.= 将值添加到前一个值而不是覆盖它。

【讨论】:

  • 这简直是一团糟,而且是一个糟糕的解决方案示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-19
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多