Php 多维数组-按键合并和添加
我有以下阵列:Php 多维数组-按键合并和添加,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有以下阵列: array( [7.7] =>100 ) array( [8.0] =>500 ) array( [8.0] =>1000 ) array( [7.7] =>2000 ) 我需要的是按键对这些数组进行分组并求和,所以我需要如下数组: array( [7.7] =>2100 [8.0] =>1500 ) 我试着先把它们合并起来,但我迷路了 所以,我从foreach循环中的数据库中获取数据:
array(
[7.7] =>100
)
array(
[8.0] =>500
)
array(
[8.0] =>1000
)
array(
[7.7] =>2000
)
我需要的是按键对这些数组进行分组并求和,所以我需要如下数组:
array(
[7.7] =>2100
[8.0] =>1500
)
我试着先把它们合并起来,但我迷路了
所以,我从foreach循环中的数据库中获取数据:
$rate_tax = array();
foreach($pos as $position) {
$rate_tax[$position->tax] = $position->$price;
}
而我得到的是印刷税(rate\u tax)
因此,我错过了值的加法。您可以尝试类似的方法
$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;
}
}
你就快到了。只需根据
税费对价格
进行汇总,而不是重置:
$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;
}
如果您不熟悉三元操作,请查看:
请展示您尝试过的内容。如何获得这些阵列?每个阵列总是有一个键,或者它们可以有更多键?@MickaelLeger一个合适的解决方案可以很容易地解决这两种情况,因此这是一个没有意义的问题。更大的问题是没有做出任何尝试updated@MonkeyZeus当然但我只是想知道他是否总是有4个数组,以及他是如何得到这些数组的,因为他不必等待X数组,然后将它们分组+计算,他可能会在得到答案的同时得到正确的结果。谢谢答案,但数组的数量会有所不同。每次创建数组时,只需添加你的$rate\u tax
数组即可一个。@pecoou没问题,我很高兴你发布了你尝试过的代码,这样我就不用猜数据源了。很抱歉,我意识到答案不是completed@Pecooou别担心。只要你能提供一个答案,你就会发现其他人不必问愚蠢的澄清问题:)
$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;
}