Я пытаюсь найти ответ здесь и в Google, но не повезло!
Почему это не работает, когда я пытаюсь взорвать строку?
$Text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,"; $Text_Array = explode(",",$Text); $Text_Array = array_filter($Text_Array); print_r($Text_Array);
Я хотел бы, чтобы все мои теги разделились на одну запятую и удалили пробел и дублировали теги.
Я бы хотел получить этот результат:
«Бразилия, банки, дома, Великобритания, тест, финансовые времена, ipad, два слова»;
Пожалуйста, вы можете помочь мне достичь этого?
Если вы хотите remove any space and duplicate tags
вам также нужно добавить array_unique
с array_filter
$textAray = array_unique(array_filter($textAray));
Примечание .. Пожалуйста, это не удалит .
в результате .. вот лучший способ отфильтровать результаты
$text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,"; $textArray = array_unique(preg_split("/[,.]+/", $text)); $textArray = array_filter($textArray); echo implode(",", $textArray);
Вывод
brazil,banks,home,uk,test,financial times,ipad,Two words
Вам нужна функция array_unique:
$Text_Array = array_unique($Text_Array);
Таким образом, ваш код становится:
$Text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,"; $Text_Array = explode(",",$Text); $Text_Array = array_filter($Text_Array); $Text_Array = array_unique($Text_Array);\ print_r($Text_Array);
и вы получите желаемый результат.
Вы можете заменить несколько непрерывных запятых на одну запятую, прежде чем взорвать строку
$Text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,"; $Text = preg_replace("/,+/", ",", $Text); $Text_Array = explode(",",$Text); print_r($Text_Array);
Обратите внимание, что в вашем массиве будет оставаться один элемент, содержащий точку, и последний элемент массива будет пустым, если ваша строка заканчивается запятой.
Вам нужен такой код
$Text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,"; $str = substr(preg_replace('/(.+?)[,]+/', '$1,', $Text),0,strlen($str)-1); $arr = array_unique(explode(',', $str)); print_r($arr);
вы можете попробовать это
<?php $Text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,"; $Text=str_replace(array(",,",",,,,",",.,",",,"),',',$Text); $Text_Array = explode(",",$Text); $Text_Array = array_filter($Text_Array); print_r($Text_Array); //output :: Array ( [0] => brazil [1] => banks [2] => home [3] => uk [4] => test [5] => financial times [6] => ipad [7] => banks [8] => Two words ) ?>
Попробуй это:
<?php $Text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,"; $Text = str_replace('.','',implode(',',array_unique(explode(',', $Text)))); $Text_Array = explode(",",$Text); $Text_Array = array_filter($Text_Array); print_r($Text_Array); ?>
Вы можете удалить все ненужные запятые в вашем примере, заменив «,,» на «,», пока не появится «,,».
while ( strstr($Text,',,') !== false ) { $Text = str_replace($Text,',,',','); }
Используемые функции:
В дополнение к решению, предоставленному этими людьми, вы можете попробовать это, чтобы распечатать значения так, как вам хотелось:
foreach($Text_Array as $textval) { echo $textval . ","; }