繁体   English   中英

将两个阵列合并为一个阵列,如果发现重复,则将旧阵列替换为新阵列

[英]Merging two arrays into one array, when found duplicates, replace the old one with a new one

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

$existed_product = array(array('name'=>"pano", 'code'=>"BR0001", 'qty'=>"2", 'price'=>"12"),      
                         array('name'=>"ying", 'code'=>"AB001", 'qty'=>"5", 'price'=>"8"));

我想合并第二个数组:

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

我要合并它们,当发现重复的产品时,只需将其替换为更新的数组(数量为10)。 结果看起来像这样:

$final_array=array(array('name'=>"pano", 'code'=>"BR0001", 'qty'=>"10", 'price'=>"12"),
                   array('name'=>"ying", 'code'=>"AB001", 'qty'=>"5", 'price'=>"8"));

请帮助我。谢谢

假设新产品始终是一个数组,而代码是标识符,则类似于

  $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>';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM