Как убрать дубли слов [:de]500 ml[:en]500 ml[:] в строке?

вот есть такая строка [:en]Blooming Sky[:], [:de]500 ml[:en]500 ml[:] а надо или так Blooming Sky 500 ml или такая [:en]Black Brown[:de]Black Brown[:]500 ml[:] а надо Black Brown 500 ml

или такаая Pastels -[:de]Blue Mist[:en]Blue Mist[:] [:de]500 ml[:en]500 ml[:]; а надо Pastels - Blue Mist 500 ml


Ответы (1 шт):

Автор решения: Alex Khonko
$input = '-[:de]Blue Mist[:en]Blue Mist[:] [:de]500 ml[:en]500 ml[:]';
// 1. режем строку по конструкции типа [:de]
$input = preg_split('/\[\:.*?\]/i',$input);
// 2. чистка, и проверка
$input = array_map('trim',$input);
$input = array_filter($input);
$input = array_unique($input);

$output = implode(' ',$input);


→ Ссылка