【PHP】配列の値(要素)を指定文字で区切って文字列にする

公開日:
更新日:
カテゴリー: PHP

配列に入っている複数の値を、指定した文字で区切って文字列にする方法を説明します。

implode関数を使う

配列に入っている値(要素)を指定した文字で区切るためには、implode関数を利用します(区切ったあとは、連続した文字列となります)。

implode("区切る文字列", 区切りたい配列);

サンプルを以下に記述しますが、implode関数の詳細はこちらを参照してください。

配列を指定文字で区切って文字列化

いくつかの挨拶言葉を格納されている配列を文字列「|」で区切って出力してみたいと思います。

<?php
//挨拶を配列に格納
$aisatu_array = array(
'おはようございます',
'こんにちは',
'こんばんは',
'ありがとう',
'ごめんなさい'
);
//implode関数を利用し、文字列「|」で区切る
$aisatu = implode("|", $aisatu_array);
//出力
echo $aisatu;
?>

これを実行すると以下のようになります。

おはようございます|こんにちは|こんばんは|ありがとう|ごめんなさい

応用

implode関数を応用すると、配列にNGワードを格納し、それをimplode関数で文字列に変換し(区切り文字は「|」)、preg_match関数とともに用いると、指定した文字列の中にNGワードが含まれるかどうかを調べることができます。

<?php
//NGワードがあるか調べる文字列
$target= "現在12月。冷え込みが厳しく、布団から出るのが億劫bbbです。それだけです。";

//NGワードを配列に入れる
$ng_word_array = array(
'aaa',
'bbb',
'ccc'
);
//NGワードをimplode関数を使い、preg_match関数の引数に渡す変数を作成
$ng_word = implode("|", $ng_word_array);


if(preg_match('/' . $ng_word . '/', $target)){
	echo "NGワードありました!";
}else{
	echo "NGワードなかったよ!";
}
?>

この場合、検索したい文字列の中にNGワードである「bbb」が含まれるので、「NGワードありました!」と出力されます。

Tips

implode関数の逆の手順を行う、すなわちある文字列を指定した文字で区切って配列に格納する関数にexplode関数があります。

その詳細は【PHP】指定文字で区切って配列に格納を見てください。

 

あわせて読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント