结合两个不同的维数组PHP

时间:2015-09-03 20:21:57

标签: php arrays

我有两个不同的维数组。

数组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++;
}

4 个答案:

答案 0 :(得分:1)

可能是一种更简单的方式,但是如果没有foreach

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

答案 1 :(得分:0)

最简单的方法是:

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

或者如果两个数组的键相同(0,1,2 ...)并且数组具有相同的长度:

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

答案 2 :(得分:0)

如果$array1$array2由相同的索引映射,因此它们具有相同的长度,您可以尝试:

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

完成了! 如果您想保持原始$array1不受影响,可以在foreach之前复制。

答案 3 :(得分:0)

创建新数组并将其存储在那里。您可以访问$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);