2013-06-17 3 views
0

Это может быть немного элементарно, но это удар ногой по заднице.Удалить дубликаты в многомерном массиве на основе нескольких полей

У меня есть код последующего:

$newArray = array(); 
foreach (array_reverse($results) as $val) { 
    $newArray[$val['last_name']] = $val; 
} 
$results = array_values($newArray); 

Этот код успешно удаляет дубликаты из многомерного массива, основанного на лицах фамилии.

Проблема заключается в том, что могут быть Джон Смит и Сьюзен Смит. Я, очевидно, хотел бы сохранить обе эти записи.

Мне нужна помощь в возможности удалить эти дубликаты на основе пары других частей информации в дополнение к полю ['last_name']; имена людей ['first_name'] и событие ['event_id'], они также подписались.

Любое понимание было бы весьма полезным. Как я уже сказал выше, я знаю, что это может быть элементарно, но в течение всего дня он болел головной болью, поэтому любая помощь была бы весьма признательна.

ответ

0

Возможно, вы можете организовать пользователей на основе комбинации имени и фамилии или, возможно, полей.

$newArray = array(); 

foreach (array_reverse($results) as $val) { 
    $newArray[ $val['last_name'] . ', ' . $newArray[$val['first_name'] ] = $val; 
} 

$results = array_values($newArray); 

Таким образом, дубликаты могут быть отфильтрованы при сохранении похожих пользователей. Вы также можете добавить идентификатор события. Это может сделать поиск записи более громоздким.

+0

Thx для входа bc и на первый взгляд кажется, что он, возможно, сработал. Но я переосмыслил вопрос, который у меня был, и решил использовать другой подход. –

Смежные вопросы