Я думаю, Дэн Фего дал прекрасный ответ о том, почему нужно отсортировать массив перед удалением дубликатов; однако я хотел бы изучить, что делает array_flip()
. Я буду использовать следующий массив для иллюстрации:
'a' => 'apple'
'b' => 'banana'
'c' => 'apple'
'd' => 'date'
array_flip()
обменивается ключами и значениями, производящими
'apple' => 'a'
'banana' => 'b'
'apple' => 'c'
'date' => 'd'
Однако ключи должны быть уникальными. руководство описывает, как array_flip()
справляется с этим:
Если значение имеет несколько вхождений, последний ключ будет использоваться как его
значения и все остальные будут потеряны.
Итак, мы получаем что-то вроде этого:
'banana' => 'b'
'apple' => 'c'
'date' => 'd'
Итак, если мы используем array_flip(array_flip())
, мы получим:
'b' => 'banana'
'c' => 'apple'
'd' => 'date'
Что касается мотивации array_unique()
, мы можем только строить предположения, если Расмус Лердорф или кто-то, кто в настоящее время работает над разработкой PHP, не захочет ответить.