-3

可能重复:
PHP 从多维数组中删除重复值

我有一个像这样的数组:

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删除重复..但我知道它只适用于二维数组..我能做什么?有人可以帮我吗?谢谢!!!

4

1 回答 1

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);
于 2012-09-05T15:39:35.830 回答