PHP数组索引除了 - 不同层次 [英] PHP Array index addition - different levels
本文介绍了PHP数组索引除了 - 不同层次的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有2个数组如下: -
$ m_aggregate =阵列(
加权=>阵列(40000,
30000,
90000,
0),
'加权'=>阵列(3000,
2000年,
6000,
0),
weighted_sum'=> 160000,
unweighted_sum'=> 11000
);$ f_aggregate =阵列(
加权=>阵列(7000,
5000,
9000,
0),
'加权'=>阵列(500,
300,
600,
0),
weighted_sum'=> 21000,
unweighted_sum'=> 1400
);
和希望,总结了各个元素,所以我得到
$ tot_aggregate =阵列(
加权=>阵列(47000,
35000,
99000,
0),
'加权'=>阵列(3500,
2300,
6600,
0),
weighted_sum'=> 181000,
unweighted_sum'=> 12400
);
我试过用
函数sum($ ARR1,$ ARR2)
{
回报($ ARR1 + $ ARR2);
}$ tot_aggregate = array_map(求和,$ m_aggregate,$ f_aggregate);的print_r($ tot_aggregate);
但是这给了我在阵列内weighted_sum和unweighted_sum,而不是加权和不加权阵列总结。
谁能帮助?
TIA
雅
解决方案
函数sum($ ARR1,$ ARR2)
{
返回is_array($ ARR1)及&放大器; is_array($ ARR2)
? array_map(求和,$ ARR1,$ ARR2)
($ ARR1 + $ ARR2);}$ tot_aggregate = SUM($ m_aggregate,$ f_aggregate);的print_r($ tot_aggregate);
输出:
阵列
(
[0] =>排列
(
[0] => 47000
[1] => 35000
[2] => 99000
[3] => 0
) [1] =>排列
(
[0] => 3500
[1] => 2300
[2] => 6600
[3] => 0
) [2] => 181000
[3] => 12400
)
I have 2 arrays as follows :-
$m_aggregate = array(
'weighted' => array (40000,
30000,
90000,
0),
'unweighted' => array (3000,
2000,
6000,
0),
'weighted_sum' => 160000,
'unweighted_sum' => 11000
);
$f_aggregate = array(
'weighted' => array (7000,
5000,
9000,
0),
'unweighted' => array (500,
300,
600,
0),
'weighted_sum' => 21000,
'unweighted_sum' => 1400
);
and wish to sum the individual elements so I get
$tot_aggregate = array(
'weighted' => array (47000,
35000,
99000,
0),
'unweighted' => array (3500,
2300,
6600,
0),
'weighted_sum' => 181000,
'unweighted_sum' => 12400
);
I've tried using
function sum($arr1, $arr2)
{
return($arr1+$arr2);
}
$tot_aggregate = array_map("sum", $m_aggregate, $f_aggregate);
print_r($tot_aggregate);
but this gives me weighted_sum and unweighted_sum , but not the weighted and unweighted arrays within the array summed.
Can anyone help? tia Jas
解决方案
function sum($arr1, $arr2)
{
return is_array( $arr1) && is_array( $arr2)
? array_map("sum", $arr1, $arr2)
: ($arr1 + $arr2);
}
$tot_aggregate = sum($m_aggregate, $f_aggregate);
print_r($tot_aggregate);
Output :
Array
(
[0] => Array
(
[0] => 47000
[1] => 35000
[2] => 99000
[3] => 0
)
[1] => Array
(
[0] => 3500
[1] => 2300
[2] => 6600
[3] => 0
)
[2] => 181000
[3] => 12400
)
这篇关于PHP数组索引除了 - 不同层次的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文