我有以下数组:
array(
[7.7] =>100
)
array(
[8.0] =>500
)
array(
[8.0] =>1000
)
array(
[7.7] =>2000
)
我需要的是将这些数组按KEY分组并汇总值,所以我需要像这样的数组:
array(
[7.7] =>2100
[8.0] =>1500
)
我尝试先合并它们,但迷路了。
因此,我正在foreach循环中从数据库中获取数据:
$rate_tax = array();
foreach($pos as $position) {
$rate_tax[$position->tax] = $position->$price;
}
我正在使用print_r($ rate_tax);
array(
[7.7] =>2000
[8.0] =>1000
)
所以我想念这些值的加法。
答案 0 :(得分:1)
您快到了。只需对每个tax
的{{1}}进行汇总即可,而不用重置它:
$rate_tax = array();
foreach($pos as $position) {
// Use the ternary operator to check if $rate_tax[$position->tax] already exists and add to it or start at zero
$rate_tax[$position->tax] = (isset($rate_tax[$position->tax]) ? $rate_tax[$position->tax] : 0) + $position->$price;
}
如果您不熟悉三元运算,请查看:
http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary
https://davidwalsh.name/php-shorthand-if-else-ternary-operators
答案 1 :(得分:0)
您可以尝试类似的事情。
$result = array();
//Put all the input arrays inside an array so you can loop through it
$array = array($input1, $input2, $input3);
//$input1, 2 and 3 being your input arrays
foreach ($array as $input) {
foreach ($input as $key => $value) {
//Set the initial sum result to 0
if(!isset($result[$key]))
$result[$key] = 0;
$result[$key] += $value;
}
}