如何在PHP中求和两个数组值?

时间:2015-05-27 14:27:27

标签: php arrays

我的代码中有两个数组。我要总结。请参阅下面的代码 -

$arr1['invest'] = array('407.16','16.10','518.48','12.90','125.28','120.28');
$arr2['user'] = array('4','4','10','5','10','4');

输出:

Array
(
    [invest] => Array
        (
            [0] => 407.16
            [1] => 16.10
            [2] => 518.48
            [3] => 12.90
            [4] => 125.28
            [5] => 120.28
        )

    [user] => Array
        (
            [0] => 4
            [1] => 4
            [2] => 10
            [3] => 5
            [4] => 10
            [5] => 4
        )

)

以上两个数组invest包含每个用户的balance。第二个数组user包含user_id我要求和。

在第二个数组中,有多个user id我希望与invest数组相加。

示例 -

用户ID 4user数组索引015中包含3次我想总结哪个invest索引ID 015105用户ID相同。

我的结果应该是 -

Array
(
    [4]  => 543.54//Sum (407.16+16.10+120.28)
    [10] => 643.76//Sum (518.48+125.28)
    [5]  => 12.90
)

修改: -

我的代码:

$var1 = array();
foreach($arr2 as $key=>$value){
    $var1[$value] = $arr1[$key];
}
print_r($var1); //Its coming last array

由于 茅

4 个答案:

答案 0 :(得分:0)

你可以这样做:

$invest  = array(407.16, 16.10, 518.48, 12.90, 125.28, 120.28);
$users   = array(     4,     4,     10,     5,     10,      4);
$balance = array();

foreach($users as $k => $user) {
    $balance[$user] += $invest[$k];
}

现在$balance将保留每个用户的总余额。

请注意,此代码只是一个示例,面对我没有在内部添加任何类型的检查,例如需要$invest$users的检查相同的长度。

答案 1 :(得分:0)

你错过了一个+:

EditText ed2;
ed2 = (EditText) findViewById(R.id.editTextDate2);
ed2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                DialogFragment myDatePickerFragment = new MyDatePickerFragmentTo();
                myDatePickerFragment.show(getSupportFragmentManager(),"datePicker");
            }
        });

答案 2 :(得分:0)

试试这个:

$var1 = array();
foreach($arr2['user'] as $key=>$value){
    $var1[$value][] = $arr1['invest'][$key];
}

$res=array();
foreach ($var1 as $key=>$sum){
    $res[$key] = array_sum($sum);
}
print_r($res);

输出:

Array
(
    [4] => 543.54
    [10] => 643.76
    [5] => 12.9
)

答案 3 :(得分:0)

$array1 = array('407.16','16.10','518.48','12.90','125.28','120.28');
$array2 = array('4','4','10','5','10','4');

$array = array();

for($i = 0; $i < sizeof($array2); $i++) {
    $array[$array2[$i]] += $array1[$i];
}

echo $array[4];
echo $array[5];
echo $array[10];