Объединение двух различных размерных массивов PHP

У меня два разных размерных массива.

Массив 1:

Array1 ( [0] => Array ( [id] => 123 [price] => 5 [purchase_time] => 2014/4/10 ) [1] => Array ( [id] => 123 [price] => 5 [purchase_time] => 2014/5/17 ) ) 

Массив 2:

 Array2 ( [0] => 5 [1] => 8 ) 

Я хочу что-то вроде этого:

 Array ( [0] => Array ( [id] => 123 [price] => 5 [purchase_time] => 2014/4/10 [Qty] => 5 ) [1] => Array ( [id] => 123 [price] => 5 [purchase_time] => 2014/5/17 [Qty] => 8 ) ) 

В основном первый массив – это информация, полученная из таблицы SQL. Второй массив содержит количество проданных продуктов. Теперь я хочу объединить эти два массива и использовать объединенный массив для создания новой таблицы. Поскольку эти два массива имеют разные размеры. Я не знаю, как это сделать. Вот моя попытка:

 $i = 0; foreach($array1 as $row) { $newarray = array_merge($row,$array2[$i]); $i++; } 

Может быть, проще, но для удовольствия без foreach :

 array_walk($array1, function(&$v, $k, $a){ $v['Qty'] = $a[$k]; }, $array2); 

Самый простой способ:

 $i = 0; foreach($array1 as &$row) { $row['Qty'] = $array2[$i++]; } 

Или, если ключи обоих массивов одинаковы (0,1,2 …) и массив имеют одинаковую длину:

 foreach($array1 as $k => &$row) { $row['Qty'] = $array2[$k]; } 

Если $array1 и $array2 отображаются одинаковыми индексами, поэтому они имеют одинаковую длину, вы можете попробовать:

 foreach($array2 as $index=>$quantity){ $array1[$index]['Qty'] = $quantity; } 

И все! Если вы хотите сохранить исходный $array1 нетронутым, вы можете сделать копию перед foreach.

Создайте новый массив и сохраните его там. Вы можете получить доступ к значению $array2 потому что они имеют одинаковый индекс $array1 поэтому вы можете использовать $key этих двух массивов.

  $array3 = []; foreach($array1 as $key => $val) { $array3[] = [ 'id' => $val['id'], 'price' => $val['price'], 'purchase_time' => $val['purchase_time'], 'Qty' => $array2[$key] ]; } print_r($array3);