对三层数组PHP的内容求和
这是我正在使用的数组(3层),我试图通过所有变量(不应添加月份)将第一个数组中的第一个月到第二个数组中的第一个月(应为150)的销售额(nosales)相加,依此类推,所以我剩下一个两级数组,其中包含nosales、salevalue、,每个月的销售成本和销售利润合计对三层数组PHP的内容求和,php,multidimensional-array,foreach,Php,Multidimensional Array,Foreach,这是我正在使用的数组(3层),我试图通过所有变量(不应添加月份)将第一个数组中的第一个月到第二个数组中的第一个月(应为150)的销售额(nosales)相加,依此类推,所以我剩下一个两级数组,其中包含nosales、salevalue、,每个月的销售成本和销售利润合计 Array ( [0] => Array ( [1] => Array (
Array (
[0] => Array
(
[1] => Array
(
[month] => 1
[nosales] => 100
[salevalue] => 1200
[salecost] => 360
[saleprofit] => 840
)
[2] => Array
(
[month] => 2
[nosales] => 110
[salevalue] => 1320
[salecost] => 396
[saleprofit] => 924
)
)
[1] => Array
(
[1] => Array
(
[month] => 1
[nosales] => 50
[salevalue] => 350
[salecost] => 70
[saleprofit] => 280
)
[2] => Array
(
[month] => 2
[nosales] => 55
[salevalue] => 385
[salecost] => 77
[saleprofit] => 308
)
)
)
现在,我试着循环它们,让它们相加,但我得到了一些错误。有人能帮忙吗
以下是我目前使用的脚本:
$acc = array_shift($results_array);
foreach ($results_array as $val) {
foreach ($val as $v) {
foreach ($v as $key => $v){
$acc[$key] += $v;
}
}
}
提前谢谢你的帮助 这就是你想要做的吗
$aResultsArray = array(
0 => array(
1 => array(
'month' => 1,
'nosales' => 100,
'salevalue' => 1200,
'saleconst' => 360,
'saleprofit' => 840,
),
2 => array(
'month' => 2,
'nosales' => 110,
'salevalue' => 1320,
'saleconst' => 396,
'saleprofit' => 924,
),
),
1 => array(
1 => array(
'month' => 1,
'nosales' => 50,
'salevalue' => 350,
'saleconst' => 70,
'saleprofit' => 280,
),
2 => array(
'month' => 2,
'nosales' => 55,
'salevalue' => 385,
'saleconst' => 77,
'saleprofit' => 308,
),
),
);
$aSum = array();
foreach ($aResultsArray as $mYear => $aMonths) {
foreach ($aMonths as $mMonth => $aMonth) {
if (!isset($aSum[$aMonth['month']])) {
$aSum[$aMonth['month']] = array(
'month' => $aMonth['month'],
'nosales' => 0,
'salevalue' => 0,
'saleconst' => 0,
'saleprofit' => 0,
);
}
$aSum[$aMonth['month']]['nosales'] += $aMonth['nosales'];
$aSum[$aMonth['month']]['salevalue'] += $aMonth['salevalue'];
$aSum[$aMonth['month']]['saleconst'] += $aMonth['saleconst'];
$aSum[$aMonth['month']]['saleprofit'] += $aMonth['saleprofit'];
}
}
var_dump($aSum);
是只添加第一个月,还是将所有第一个月与第一个月相加,将第二个月与第二个月相加?预期的输出是什么?我希望第一个月的值被编译成第一个月,第二个月被编译成第二个月,所以我只剩下一个数组,它是所有值的总和。似乎有人已经给了我正确的答案:)谢谢。谢谢,它做了我想要它做的。