Php string - использовать шаблон в строке, чтобы разбить массив - PullRequest
2 голосов
/ 12 августа 2011

У меня есть строка, которая выглядит примерно так:

$string = "Item 1|Item 2|Item 3|Item 4|Item 5"

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

Он выберет Item1 и preg_replace() остальную часть строки с этим Item.Затем он посмотрел бы на следующий Item (Item2) и preg_replace() остальную часть строки с этим Item.

Хитрая часть, если Item 1 == Item 2.Затем алгоритм заменит элемент 2, а элемент 3 будет следующим элементом для просмотра.

Я пробовал пару методов, но ничего не работает.Есть идеи?Спасибо!

Ответы [ 2 ]

6 голосов
/ 12 августа 2011

Если я правильно понимаю, игнорируя все ваши данные о preg_replace(), если вы действительно просто хотите удалить дубликаты, используйте несколько операций с массивами.

explode() это на | в массив. Отфильтруйте его с помощью array_unique() и implode() обратно в строку с разделителями в виде трубы:

$array = explode("|", "Item 1|Item 2|Item 3|Item 4|Item 5");
$unique = array_unique($array);
implode("|", $unique);
4 голосов
/ 12 августа 2011
$items = explode('|',$string);
$unique_items = array_unique($items);
$unique_string = implode('|', $unique_items);
...