Проверьте, имеет ли строка две или более запятых, и удалите дополнительные запятые.

У меня есть следующая строка в столбце базы данных с именем "alerts"

$string = '1,2,,3,4,5,,,6';

Как мне проверить, есть ли в этой строке две или более запятых между числами, и как я могу удалить дополнительные запятые, чтобы сделать строку такой, как эта;

$string = '1,2,3,4,5,6';

4 ответа

Решение

Используйте этот код:

$string = '1,2,,3,4,5,,,6';
$arr=explode(",",$string);
$string=implode(",",array_filter($arr));

или в одну строку

$string = implode(",",array_filter(explode(",",$string)));

Вы должны использовать регулярное выражение для этого.

preg_replace('/,,+/', ',', $string);

Если вы не знакомы с регулярными выражениями, вы должны Google. Существует множество учебных пособий, и, ознакомившись с ними, вы можете использовать их для многих целей.

Попробуй это:

$text = '1,2,,3,4,5,,,6,,2,,1,,2,9';
$textArray = preg_split("/[,.]+/", $text);
$textArray = array_filter($textArray);
echo implode(",", $textArray);

Output:1,2,3,4,5,6,2,1,2,9

Если вы хотите уникальный элемент, то вторая строка будет

$textArray = array_unique(preg_split("/[,.]+/", $text));

Это также сработало бы без дополнительных затрат на загрузку механизма регулярных выражений.

$string = '1,2,,3,4,5,,,6';

do {
    $string = str_replace(',,', ',', $string, $count);
} while ( $count > 0 );

echo $string;

Выход:

  1,2,3,4,5,6
Другие вопросы по тегам