PHP удаляет повторяющиеся значения из многомерного массива
Мы можем использовать 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 )
)
Кто-нибудь может мне помочь...
Ответы
Ответ 1
Комментарии пользователя на странице 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;
}
?>
Ответ 2
Вы можете сериализовать подмассивы (через serialize()
) в новый массив, затем запустите array_unique()
, а затем unserialize результирующий набор массивов.