PHP удаляет повторяющиеся значения из многомерного массива - PullRequest
13 голосов
/ 30 августа 2010

Мы можем использовать array_unique() для удаления повторяющихся записей из одного многомерного массива в php. Можно ли использовать с многомерным массивом?Это не работает для меня!

Вот как выглядит массив

Array (
    [0] => Array ( [0] => 1001 [1] => john [2] => example )
    [1] => Array ( [0] => 1002 [1] => test [2] => dreamz )
    [2] => Array ( [0] => 1001 [1] => john [2] => example )
    [3] => Array ( [0] => 1001 [1] => example [2] => john )
    [4] => Array ( [0] => 1001 [1] => john [2] => example )
)

Кто-нибудь может помочь мне ...

Ответы [ 2 ]

39 голосов
/ 30 августа 2010

Комментарии пользователей на странице array_unique проливают некоторый свет на это. Скорее всего, вы найдете некоторые скрытые жемчужины в этих комментариях - это очень удобная документация.

Просто быстрый браузер показал следующее, чтобы удалить дубликаты из многомерного массива:

<?php
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;
}
?>
3 голосов
/ 30 августа 2010

Вы можете сериализовать подмассивы (через serialize()) в новый массив, затем запустить на нем array_unique() и затем десериализовать полученный набор массивов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...