-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重複を削除することを知っています..しかし、私はそれが2D配列でのみ機能することを知っています..どうすればよいですか? 誰かが私を助けてくれますか?ありがとう!!!

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 に答える