首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将两个数组合并为一个数组,当发现重复时,将旧数组替换为新数组。

将两个数组合并为一个数组,当发现重复时,将旧数组替换为新数组。
EN

Stack Overflow用户
提问于 2015-04-23 16:26:39
回答 1查看 28关注 0票数 0

嗨,我是PHP的新手,我正在尝试合并2个数组,但是我不想复制,我已经被困了一个星期了。我有第一个数组:

代码语言:javascript
复制
$existed_product = array(array('name'=>"pano", 'code'=>"BR0001", 'qty'=>"2", 'price'=>"12"),      
                         array('name'=>"ying", 'code'=>"AB001", 'qty'=>"5", 'price'=>"8"));

我想合并第二个数组:

代码语言:javascript
复制
$new_product= array('name'=>"pano", 'code'=>"BR0001", 'qty'=>"10", 'price'=>"12");

我想将它们合并,当它找到重复的产品时,只需用一个更新的数组(有qty=10)来替换它。结果如下:

代码语言:javascript
复制
$final_array=array(array('name'=>"pano", 'code'=>"BR0001", 'qty'=>"10", 'price'=>"12"),
                   array('name'=>"ying", 'code'=>"AB001", 'qty'=>"5", 'price'=>"8"));

请帮助me.Thank你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-23 18:51:19

假设新产品总是一个数组,代码是标识符,如下所示

代码语言:javascript
复制
  $existed_product = array( 
    array(
      'name' => 'pano',
      'code' => 'BR0001',
      'qty' => '2',
      'price' => '12' ), 
    array(
      'name' => 'ying',
      'code' => 'AB001',
      'qty' => '5',
      'price' => '8' 
    ) 
  );

  echo '<pre>', print_r( $existed_product, true ), '</pre>';

  $new_product = array(
    'name' => 'pano',
    'code' => 'BR0001',
    'qty' => '10',
    'price' => '12' 
  );

  foreach ( $existed_product as $no => $product ) {
    if ( $new_product['code'] == $product['code'] ) {
      $existed_product[$no]['qty'] = $new_product['qty'];
      $existed_product[$no]['price'] = $new_product['price'];
    }
  }

  echo '<pre>', print_r( $existed_product, true ), '</pre>';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29829309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档