Bitstream Vera без моно. [ http://www.dafont.com/bitstream-vera-mono.font]
Быстрое решение, использующее уникальность индексов массива:
$newArr = array();
foreach ($array as $val) {
$newArr[$val[2]] = $val;
}
$array = array_values($newArr);
Примечание 1: Как видно из выше, последнее совпадение адреса электронной почты используется вместо первого. Это можно изменить, заменив вторую строку на
foreach (array_reverse($array) as $val) {
Примечание 2: индексы в результирующем массиве несколько перепутаны. Но я думаю, это не имеет значения ...
В комментариях пользователей для array_unique () есть несколько решений этой проблемы. Например,
функция multi_unique ($ array) { foreach ($ массив как $ k => $ na) $ new [$ k] = сериализовать ($ na); $ uniq = array_unique ($ новый); foreach ($ uniq как $ k => $ ser) $ new1 [$ k] = десериализовать ($ ser); возврат ($ new1); }
из http://uk.php.net/manual/en/function.array-unique.php#57202 .
$array = array(
array('dave','jones','c@b.c'),
array('dave','jones','a@c.d'),
array('dave','jones','c@b.c'),
array('dave','jones','e@v.d'),
array('dave','jones','a@c.d')
);
$copy = $array; // create copy to delete dups from
$usedEmails = array(); // used emails
for( $i=0; $i<count($array); $i++ ) {
if ( in_array( $array[$i][2], $usedEmails ) ) {
unset($copy[$i]);
}
else {
$usedEmails[] = $array[$i][2];
}
}
print_r($copy);