爆炸不适用于字符串中的多个逗号

时间:2013-05-22 08:48:53

标签: php function explode

我试着在谷歌找到答案,但没有运气!

为什么当我尝试爆炸字符串时它不起作用?

$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,两个字”;

拜托,你能帮助我实现这个目标吗?

8 个答案:

答案 0 :(得分:3)

如果您想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

答案 1 :(得分:0)

你需要的是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);

然后您将获得所需的输出。

答案 2 :(得分:0)

在爆炸字符串

之前,您可以用一个逗号替换多个连续逗号
$Text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,";

$Text = preg_replace("/,+/", ",", $Text);
$Text_Array = explode(",",$Text);

print_r($Text_Array);

请注意,您的数组中仍然会有一个包含点的元素,如果您的字符串以逗号结尾,则该数组的最后一个元素将为空。

答案 3 :(得分:0)

你需要这样的代码

$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);
  1. 你需要用一个替换,或者更多,我已经用preg_replace
  2. 完成了
  3. 从字符串中删除最后一个
  4. 爆炸,
  5. 通过array_unique()
  6. 删除重复项

答案 4 :(得分:0)

试试这个:

<?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);
?>

答案 5 :(得分:0)

您可以删除示例中所有不必要的逗号,方法是将“,,”替换为“,”,直到不存在“,,”为止。

while ( strstr($Text,',,') !== false ) {
    $Text = str_replace($Text,',,',',');
}

使用过的功能:

答案 6 :(得分:0)

除了这些人提供的解决方案之外,您可以尝试按照您的意愿打印值: -

foreach($Text_Array as $textval)
{
echo $textval . ",";
}

答案 7 :(得分:-1)

你可以试试这个

<?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 )
?>