【问题标题】:How to remove duplicates from multidimensional array in php [duplicate]如何从php中的多维数组中删除重复项[重复]
【发布时间】:2012-09-05 15:36:45
【问题描述】:

可能重复:
PHP remove duplicate values from multidimensional array

我有一个类似的数组:

Array
(
    [prom] => Array
        (
            [cab] => Array
                (
                    [0] => Array
                        (
                            [code] => 01
                            [price1] => 1000
                            [price2] => 2000
                            [available] => 2
                            [max] => 2
                            [gca] => 2
                        )

                    [1] => Array
                        (
                            [code] => 04
                            [price1] => 870
                            [price2] => 2500
                            [available] => 3
                            [max] => 4
                            [gca] => 10
                        )

                    [2] => Array
                        (
                            [code] => 01
                            [price1] => 1000
                            [price2] => 2000
                            [available] => 2
                            [max] => 2
                            [gca] => 2
                        )

                    [3] => Array
                        (
                            [code] => 05
                            [price1] => 346
                            [price2] => 1022
                            [available] => 10
                            [max] => 2
                            [gca] => 20
                        )

                )
           [cab1] => Array........

        )
    [prom1] = Array....
)

我要做的是删除每个 [cab*] 数组中的重复项..

所以有类似的东西:

Array
    (
        [prom] => Array
            (
                [cab] => Array
                    (
                        [0] => Array
                            (
                                [code] => 01
                                [price1] => 1000
                                [price2] => 2000
                                [available] => 2
                                [max] => 2
                                [gca] => 2
                            )

                        [1] => Array
                            (
                                [code] => 04
                                [price1] => 870
                                [price2] => 2500
                                [available] => 3
                                [max] => 4
                                [gca] => 10
                            )

                        [2] => Array
                            (
                                [code] => 05
                                [price1] => 346
                                [price2] => 1022
                                [available] => 10
                                [max] => 2
                                [gca] => 20
                            )

                    )
               [cab1] => Array........

            )
        [prom1] = Array....
    )

知道有array_unique 结合array_map 来删除重复项.. 但我知道它只适用于二维数组.. 我该怎么办?有人可以帮我吗?谢谢!!!

【问题讨论】:

  • 好的.. 我读到了 super_unique 方法,它只适用于二维数组.. 谢谢,很高兴 ;)
  • 当且仅当最后一个数组中的值完全相等时才可以删除重复项?每个最后一个数组都有这个键/值:code => 01,price1 => 1000,price2 => 2000,available => 2,max => 2,gca => 2。我需要所有这些字段..和 super_unique 函数删除例如 max=>2, max=>2.. 我希望我很清楚...

标签: php multidimensional-array duplicates


【解决方案1】:

试试看:-

function super_unique($array)
{
  $result = array_map("unserialize", array_unique(array_map("serialize", $array)));

  foreach ($result as $key => $value)
  {
    if ( is_array($value) )
    {
      $result[$key] = super_unique($value);
    }
  }

  return $result;
}


$input =  super_unique($myarray);
echo "<pre>";
print_r($input);

【讨论】:

  • 当且仅当最后一个数组中的值完全相等时才可以删除重复项?每个最后一个数组都有这个键/值:code => 01,price1 => 1000,price2 => 2000,available => 2,max => 2,gca => 2。我需要所有这些字段..和 super_unique 函数删除例如 max=>2, max=>2.. 我希望我很清楚...
  • 你想从同一个数组中删除 max=>2, max=>2。我说的对吗?
  • 不...我不想删除它们!!!
猜你喜欢
  • 2017-07-23
  • 2017-06-01
  • 1970-01-01
  • 2018-07-26
  • 1970-01-01
  • 1970-01-01
  • 2011-04-05
  • 2019-09-04
  • 2014-05-26
相关资源
最近更新 更多