2014-02-13 3 views
0

У меня есть массив головы:Увеличение значений в массиве по массиву

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

И мой второй массив выглядит следующим образом:

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

Теперь я хочу, чтобы увеличить значения в моей голове массива по значениям в второй массив.

Результат должен выглядеть следующим образом:

Array 
(
    [0] => 11 
    [1] => 17 
    [2] => 13 
    [3] => 11 
    [4] => 11 
    [5] => 17 
) 

Как я могу это сделать?

Patrick.

+0

Простой цикл может сделать это легко. –

+0

foreach или array_walk с некоторыми lambda – MightyPork

+0

Вы что-то пытались и застряли где-нибудь? Отправьте свои усилия, и мы будем рады помочь вам. – Jon

ответ

2

Как о следующем:

$result = array_map(function() { 
    return array_sum(func_get_args()); 
}, $arr1, $arr2); 

func_get_args() извлекает один элемент из каждого массива, array_sum() добавляет эти два значения, и array_map() создает новый массив. Оригинальная идея от this answer.


Или, если вы хотите использовать цикл, попробуйте следующее:

$result = array(); 

for($i=0,$count=count($arr1); $i < $count; $i++) { 
    $result[$i] = $arr1[$i] + $arr2[$i]; 
} 

Выход:

Array 
(
    [0] => 11 
    [1] => 17 
    [2] => 13 
    [3] => 11 
    [4] => 11 
    [5] => 17 
) 

Demo

+1

awesome, спасибо! –

2

Чем проще, тем лучше.

foreach ($a1 as $index => &$value) { 
    $value += $a2[$index]; 
} 
0
for($i = 0; $i < count($headArray); $i++) 
    $headArray[$i] += $secondArray[$i]; 
Смежные вопросы