2015-05-27 5 views
-1

У меня есть два массива в моем коде. Я хочу сказать. Пожалуйста, смотрите ниже мой код -Как суммировать два значения массива в PHP?

$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 Я хочу суммировать.

Во втором массиве, имеющем более 1 user id Я хочу суммировать массив invest.

Пример -

Идентификатор пользователя 4 содержит 3 раза в индексе массива user0, 1 и 5 я хочу сумму, которую invest индекс ID 0, 1 и 5 же, как и 105 идентификатор пользователя.

Мой результат должен быть -

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

Edit: -

Мой код:

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

Благодаря Чину

+0

Этот вопрос немного не хватает информации. Можете ли вы поделиться тем, что вы пробовали, и с какими проблемами вы столкнулись? –

+0

Ждать, я поделюсь своим кодом – Chinmay235

+0

Результат для элемента 4 не кажется суммой :) – BlunT

ответ

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 иметь одинаковую длину.

0

Вы пропускаете +:

$var1 = array(); 
foreach($arr2 as $key=>$value){ 
    $var1[$value] += $arr1[$key]; 
} 
print_r($var1); 
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 
) 
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]; 
+0

Привет, вы просто ставите статический ключ массива. Но мой ключ исходит из динамичного. '4, 5 и 10' это user_id, это может быть иначе – Chinmay235

Смежные вопросы