• ベストアンサー

重複する文字を1つにするには?

「おしえて goo Okwave goo おしえて」 のように単語が半角スペースで区切られています。この単語で同じもの(ここでは"おしえて"と"goo")を1つにし 「おしえて goo Okwave」のように変換することは可能なのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

------------------------------------------------ $str = "おしえて goo Okwave goo おしえて"; // 半角スペースを区切り文字とし、配列に格納する $array = explode(" ", $str); // 重複した値を除去する array_unique($array); // 配列の要素を半角スペースで連結する $result = implode(" ", $array); ------------------------------------------------- もしくは、 ------------------------------------------------- $str = "おしえて goo Okwave goo おしえて"; // 半角スペースを区切り文字とし、配列に格納する $array = explode(" ", $str); // 値をキーとして重複を除去する $tmp_array = array(); foreach($array => $value) { $tmp_array[$value] = $value; } // 配列の要素を半角スペースで連結する $result = implode(" ", $tmp_array); ------------------------------------------------- 配列関数には他にも色々あるので調べてみてください。

参考URL:
http://jp.php.net/manual/ja/function.array-unique.php
itmedia_search
質問者

お礼

回答ありがとうございました。

その他の回答 (3)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

配列に落として、ユニークなものを拾うのが 楽かもしれませんね <?PHP $txt="おしえて goo Okwave goo おしえて"; $txt=implode(" ",array_unique(explode(" ",$txt))); print($txt); ?>

itmedia_search
質問者

お礼

大変参考になりました。ありがとうございました。

回答No.3

訂正です。 > // 重複した値を除去する > array_unique($array); // 重複した値を除去する $array = array_unique($array);

itmedia_search
質問者

お礼

ありがとうございます。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

スペースでexplodeして一旦配列にいれarray_uniqueで重複値を削除しスペースでimplodeしたら出来ます。

itmedia_search
質問者

お礼

なるほど、ありがとうございました。

関連するQ&A