PHP Удаление дубликатов на основе предыдущего элемента

Я ищу создать функцию, которая проверяет массив для повторяющихся элементов и удаляет эти элементы только в том случае, если дублирующий элемент совпадает с предыдущим элементом. Позвольте мне привести простой пример:

Следующий массив (в этом случае массив не будет многомерным) выглядит следующим образом:

array('apple', 'apple', 'pear', 'orange', 'banana', 'apple', 'banana'); 

В этом случае функция удаления дублированных массивов вернет массив со следующими элементами:

 array('apple', 'pear', 'orange', 'banana', 'apple', 'banana'); 

Обратите внимание, что в массиве все еще есть «дубликаты». В случае, если первый и второй элементы, были дубликатами (оба «яблоко»), с одним предшествующим другим. Тем не менее, есть три случая «яблока», найденных в первом массиве, но только один (в данном случае, второй элемент) был удален, поскольку это был дубликат предыдущего элемента в массиве. Исходя из этих правил, в то время как есть дубликаты «банана», поскольку это не дубликат предыдущего элемента массива, он не удаляется. Любые идеи о хорошей функции для этого?

Solutions Collecting From Web of "PHP Удаление дубликатов на основе предыдущего элемента"