如何基于PHP中的键值合并/组合/插入2个不同的数组

时间:2015-07-06 02:09:27

标签: php arrays merge

我需要根据相同的键值合并两种不同的数组 第一阵列:

Array{
 [0]=>Product{
  [name]=>car
  [type]=>honda
 }
 [1]=>Product{
  [name]=>motorbike
  [type]=>suzuki
 }
 [2]=>Product{
  [name]=>superbike
  [type]=>audi
 }
[3]=>Product{
  [name]=>car
  [type]=>suzuki
 }
}

第二阵列:

Array{
 [0]=>Seller{
  [name]=>andy
  [handle] =>car
 }
 [1]=>Seller{
  [name]=>davies
  [handle] =>superbike
 }
 [2]=>Seller{
  [name]=>kevin
  [handle] =>motorbike
 }
}

最终输出:

 Array{
     [0]=>Product{
      [name]=>car
      [type]=>honda
      [seller]=>kevin
     }
     [1]=>Product{
      [name]=>motorbike
      [type]=>suzuki
      [seller]=>kevin
     }
     [2]=>Product{
      [name]=>superbike
      [type]=>audi
      [seller]=>davies
     }
    [3]=>Product{
      [name]=>car
      [type]=>suzuki
      [seller]=>andy
     }
    }

所以从示例数组和我给出的输出。我试图将2个不同的数组合并为1. Array 1是众多产品的列表,而Array 2是卖家名称和信息的列表。我试图根据卖家的手柄分配每个产品。

因此,我尝试根据product[name]seller[handle]的键值合并2个不同的数组,以生成final output,如上所示

1 个答案:

答案 0 :(得分:2)

这是一个非常标准的方法:

$result = array();

foreach ($sellers as $seller) {
    // For each seller, loop through products and 
    // check if the name matches the sellers handle
    foreach ($products as $product) {
        if ($product['name'] == $seller['handle']) {
            // When a product has a name that matches the seller's handle, 
            // add it to the result array 
            $result[] = array(
                'name' => $product['name'], 
                'type' => $product['type'], 
                'seller' => $seller['name']);
        }
    }
}