Всем доброго времени уважаемые форумчане! Бьюсь весь день не могу понять, как убрать дубли из массива, к примеру есть массив. PHP: $myArray = array( array( array("name"=>"Иванов И.И.", "age"=>"25", "email"=>"ivanov@mail.ru"), array("name"=>"Иванов И.И.", "age"=>"25", "email"=>"ivanov@mail.ru") ), array( array("name"=>"Иванова И.И.", "age"=>"25", "email"=>"ivanov@mail.ru"), array("name"=>"Сидоров С.С.", "age"=>"47", "email"=>"sidorov@mail.ru") ) ); Как убрать из него дубли и вывести только уникальные значения? И можно ли сравнивать только к примеру по "name"? Пробовал так PHP: $myArray=array_map("unserialize", array_unique(array_map("serialize", $myArray))); echo "<pre>"; print_r($myArray); Не работает. Пробовал так PHP: print_r(array_unique($myArray, SORT_REGULAR)); Тоже не работает. В случае с двумерным массивом - дубли убирает. Что ни так делаю?
Попробовал так PHP: function super_unique($array,$key) { $temp_array = array(); foreach ($array as &$v) { if (!isset($temp_array[$v[$key]])) $temp_array[$v[$key]] =& $v; } $array = array_values($temp_array); return $array; } Тоже - с таким массивом работает Array ( [0] => Array ( [name] => Иванов [age] => 25 )) А с таким не работает Array ( [0] => Array ( [0] => Array ( [name] => Иванов [age] => 25 ))) Вроде же правильно всё должно быть? Или что-то я не правильно понял?
Так, я мы знаем, что должно быть на входе. А что на выходе ожидается? тут три одинаковых записи есть, но в двух разных группах. Из трех одна должна остаться? Или уникализация только внутри группы должна идти? Или уникальность всей группы проверяется?