Удаление повторяющихся строк в текстовом файле

Мне нужно открыть текстовый файл (file.txt), который содержит данные в следующем формате:

dave : 50lb : hlof jimmy : 55lb : okay dave : 12lb : krsho 

Я хочу удалить строки с дублирующимся стартовым словом. Результат будет выглядеть так:

 dave : 50lb : hlof jimmy : 55lb : okay 

Я думал об использовании array_unique но не работал, так что любая идея, как это можно сделать .. возможно, может быть с regex !

Обновить

моя попытка была

 $lines = file('file.txt'); $lines = array_unique($lines); file_put_contents('file.txt', implode($lines)); 

но не работал, потому что он сравнивает всю строку, если не то же самое,

Это должно сработать для вас:

(Здесь я сначала просматриваю каждый элемент из $lines с помощью array_map() затем я array_map() каждое значение с помощью : и возвращает первый элемент. После этого я использую array_intersect_key() с созданным массивом раньше, чем я использую array_unique() для получить уникальные ключи и получить пересечение с полным массивом)

 <?php $lines = file("test.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $lines = array_intersect_key($lines, array_unique(array_map(function($v){ return trim(explode(":", $v)[0]); }, $lines))); print_r($lines); ?> 

Вывод:

 Array ( [0] => dave : 50lb : hlof [1] => jimmy : 55lb : okay ) 

Какие ошибки или проблемы у вас есть с array_unique, поскольку это работает для меня:

 $lines = file('foobar.txt'); $lines = array_unique($lines); 

Обновление: добавлено до того, как вопрос был расширен