【问题标题】:Combine php array duplicate values合并php数组重复值
【发布时间】:2013-12-04 11:51:40
【问题描述】:

我有一个像这样的 php 数组:

Array
(
    [0] => Array
        (
            [product] => 2
            [price] => 30
            [qnty] => 1
        )
    [1] => Array
        (
            [product] => 2
            [price] => 30
            [qnty] => 1
        )
    [2] => Array
        (
            [product] => 1
            [price] => 250
            [qnty] => 1
        )
)

我想合并重复值,添加“qnty”索引值并像这样打印该数组:

Array
(
    [0] => Array
        (
            [product] => 2
            [price] => 30
            [qnty] =>2
        )
    [1] => Array
        (
            [product] => 1
            [price] => 250
            [qnty] => 1
        )
)

如何组合这个数组。请帮帮我

【问题讨论】:

  • 遍历数组,检查当前是否有重复项,如果有,删除重复项并增加qnty

标签: php arrays


【解决方案1】:

试试下面的代码。我假设您的数组名称是$products

$merged = array();
  foreach($products as $product) {
  $key = $product['product'];

  if(!array_key_exists($key, $merged)) {
      $merged[$key] = $product;
  }
  else {
      $merged[$key]['qnty'] += $product['qnty'];
  }
}
 echo '<pre>';
 print_r($merged);
 exit;

【讨论】:

  • 嗨,感谢您的代码。但我收到此错误:警告:array_key_exists():第一个参数应该是字符串或整数
猜你喜欢
  • 1970-01-01
  • 2019-07-18
  • 2015-06-04
  • 2019-01-05
  • 1970-01-01
  • 2012-05-21
  • 2021-06-19
  • 1970-01-01
  • 2019-02-22
相关资源
最近更新 更多