文字列内のマルチペアカンマでは分解が機能しません

私はここで答えを見つけようとしますが、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);

すべてのタグを1つのカンマで区切り、空白と重複するタグを削除したいと思います。

この結果が欲しい:

"ブラジル、銀行、ホーム、英国、テスト、金融時間、ipad、二つの言葉";

どうか、これを達成するために手伝ってもらえますか?

4
定義は "動作しません"。何が起こり、代わりに正確に何を期待していますか?
追加された 著者 deceze,
爆発する前にstr_replace()を使う。 str_getcsv()を使用するか、
追加された 著者 Mark Baker,
期待される結果は何ですか?
追加された 著者 Robert,

8 答え

If you want to remove any space and duplicate tags then you need to also add array_unique with array_filter

$textAray = array_unique(array_filter($textAray));

Note .. Please this would not remove the . in the result .. here is a better way to filter your results

$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
3
追加された
どういたしまして ....
追加された 著者 Baba,
はい、これは私の質問に対する最良の答えです。ベストソリューション!ありがとう。
追加された 著者 Andrei Andrade,

これらの人々によって与えられたソリューションに加えて、あなたが望むように値を印刷するためにこれを試すことができます:

foreach($Text_Array as $textval)
{
echo $textval . ",";
}
0
追加された

あなたはこれを試すかもしれない

<?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 )
?>
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. array_unique()で重複を削除する
0
追加された

あなたの例では、 ','がなくなるまで ','を '、'に置き換えることで、不要なすべてのコンマを削除することができます。

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

使用される関数:

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

あなたは望みの出力を得るでしょう。

0
追加された

文字列を展開する前に複数のコンマを1つのコンマで置き換えることができます

$Text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,";

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

print_r($Text_Array);

配列にはドットを含む要素が1つあり、文字列がコンマで終わる場合は配列の最後の要素は空になります。

0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com