Пост

Удаление дублирующих значений из строки php

Удалить дубликаты значений из строки php

Удаление дублирующих значений из строки php

Иногда возникает задача удаления дублирующих значений из строки.

Способ 1

Здесь напрашивается алгоритм:

  • Разбить строки в массив по разделителю
  • Выбрать уникальные значения массива
  • Создать строку обратно
1
2
implode(',',array_unique(explode(',', 'значение1,значение2,значение3,значение1')) 
// значение1,значение2,значение3

Еще разделить может быть другим:

1
2
implode(';',array_unique(explode(';',preg_replace('/\s+/','',' 79077777777; 34; 79077777777; 79077777777; 79077777777; 79077777777; 79077777777; 79077777777; 79077777777; 79077777777; 79077777777; 79077777777'))));
//79077777777;34

Здесь мы еще с помощью preg_replace почистили пробелы в строке.

Способ 2

Еще можно воспользоваться особенностью массивов, а именно перемешать значения и ключи.

В итоге вытащить ключи и преобразовать в строку.

1
2
implode(',', array_keys(array_flip(explode(',', 'значение1,значение2,значение3,значение1'))));
// значение1,значение2,значение3
Авторский пост защищен лицензией CC BY 4.0 .