Я отфильтровал некоторые ключевые слова из строки, чтобы удалить недопустимые, но теперь у меня много лишних запятых. Как мне удалить их, чтобы я пошел от этого:
,,,,,apples,,,,,,oranges,pears,,kiwis,,
К этому
apples,oranges,pears,kiwis
Этот вопрос уникален, потому что он также имеет дело с запятыми в начале и в конце.
$string = preg_replace("/,+/", ",", $string);
в основном вы используете регулярное выражение для поиска любой запятой и заменяете ее одной запятой.
это действительно очень простое регулярное выражение. Вы должны узнать о них!
https://regex101.com/ очень поможет с этим.
Ой, забыл: убрать запятые перед или после, используйте
$string = trim($string, ",");
Используйте PHP взорваться () а также array_filter () функции.
шаги:
1) Разнесите строку запятой.
2) Вы получите массив.
3) Отфильтруйте его array_filter()
, Это удалит пустые элементы из массива.
4) Опять implode()
результирующий массив с запятой.
5) Вы получите запятые удалены из строки.
<?php
$str = ',,,,,apples,,,,,,oranges,pears,,kiwis,,';
$arr = explode(',', $str);
$arr = array_filter($arr);
echo implode(',', $arr);// apples,oranges,pears,kiwis
?>
Вы также можете достичь этого с помощью preg_split
а также array_filter
,
$string = ",,,,,apples,,,,,,oranges,pears,,kiwis,,";
$keywords = preg_split("/[\s,]+/", $string);
$filterd = array_filter($keywords);
echo implode(",",$filterd);
Результат:
apples,oranges,pears,kiwis
Объяснение:
Из руководства: preg_split — Разделить строку регулярным выражением (PHP 4, PHP 5, PHP 7)
Как насчет использования preg_replace и trim?
$str=',,,,,apples,,,,,,oranges,pears,,kiwis,,';
echo trim( preg_replace('@,{2,}@',',',$str), ',');