从单个值中删除多维数组中的重复值

马里乌斯(JP)

好的,是的,我已经阅读了很多基于完全重复的解决方案,但是我需要一些不同的地方并且无法弄清楚……

因为我只想获取和删除重复的值(如果只有一个数组值是重复的)。并在以后将两者结合起来,但这并不困难。

$a = array(
    array(
        'id' => 1,
        'qty' => 1
    ),
    array(
        'id' => 0,
        'qty' => 1
    ),
    array(
        'id' => 1,
        'qty' => 2
    )
);

我想要的结果是:

$b = array(
    array(
        'id' => 1,
        'qty' => 3
    ),
    array(
        'id' => 0,
        'qty' => 1
    )
);
赛义德巴克

您可以执行以下操作:

<?php
$a = array(
    array(
        'id' => 1,
        'qty' => 1
    ),
    array(
        'id' => 0,
        'qty' => 1
    ),
    array(
        'id' => 1,
        'qty' => 2
    )
);

$idsList = array();
$res = array();
foreach ($a as $arr){
  if (!in_array($arr['id'], $idsList)){
    $res[$arr['id']] = $arr;
    $idsList[] = $arr['id'];
  }
  else{
      $res[$arr['id']]['qty'] += $arr['qty'];

  }
}

echo "<pre>";
print_r($res);

要获得这样的数组:

Array
(
    [1] => Array
        (
            [id] => 1
            [qty] => 3
        )

    [0] => Array
        (
            [id] => 0
            [qty] => 1
        )

)

检出此DEMO:http : //codepad.org/UP0G7WnE

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章