根据嵌套数组中的值从数组中删除重复的值

时间:2018-08-31 14:16:25

标签: php arrays key-value

我想比较一组记录,以便找到具有相同身份存储在记录中的记录。该记录被实现为一个关联数组。如果任何身份存在多个记录,我想从数组中删除值较低的记录。

我将尝试在示例中进行解释。

这是示例数组。您可以看到有两次相同的“ ean”。 我需要找到所有带有“ ean” 的数组,并比较其“ productCount” 。然后,我需要删除一个 productCount值较低的数组。

[0] => Array
    (
        [ean] => **6909536610216**
        [productPrice] => 760
        [productCount] => 107
    )

[1] => Array
    (
        [ean] => 6909536610261
        [productPrice] => 779
        [productCount] => 128
    )

[2] => Array
    (
        [ean] => **6909536610216**
        [productPrice] => 920
        [productCount] => 20
    )


function removeduplicateKeys($data){

    $_data = array();

    foreach ($data as $v) {
      if (isset($_data[$v['ean']])) {
        // found duplicate
        continue;
      }
      // remember unique item
      $_data[$v['ean']] = $v;
    }

    $data = array_values($_data);
    return $data;
 }

因此输出应为

[1] => Array
    (
        [ean] => 6909536610261
        [productPrice] => 779
        [productCount] => 128
    )

[2] => Array
    (
        [ean] => **6909536610216**
        [productPrice] => 920
        [productCount] => 20
    )

能帮我吗?谢谢

0 个答案:

没有答案