PHPで文字列を結合(連結)する方法について書いています。
文字列を結合する場合には、下記の関数や演算子を使うことが可能です。
・文字列リテラルを使う
・implode関数を使う
・join関数を使う(impload関数のエイリアス)
サンプルコードはPHPバージョン8.1.4で、検証しています。
文字列演算子「.」で結合する
文字列演算子「.」を使うことで、文字列を結合することができます。
公式のドキュメントはこちらになります。
例えば、下記のように使うことができます。
<?php
$apple = "りんご";
$fruits = $apple . "みかん" . "ぶどう";
echo $fruits; // りんごみかんぶどう
$apple変数に文字列「りんご」を代入しました。
$fruits変数に、文字列を結合した内容を代入しています。
$apple変数と文字列の”みかん”を文字列演算子(.
)で結合しました。
その後に、一緒に文字列”ぶどう”を文字列演算子で結合しています。
echoで出力すると、結合された文字列「りんごみかんぶどう」が出力されました。
代入と結合を一緒に行う
文字列演算子と代入演算子「.=」を一緒に使うことで、代入と結合を行うことができます。
先ほどのプログラムを下記のように修正してみました。
$apple = "りんご";
$fruits = "";
$fruits .= $apple;
$fruits .= "みかん";
$fruits .= "ぶどう";
echo $fruits;
最初に$apple変数に文字列「りんご」を代入しています。
そして$fruits変数に空文字を代入しています。
その後から、代入と結合を一緒に行っています。
$fruits変数に対して、「.=」を使って、$apple変数の値を追加しました。(文字列「りんご」が結合されて追加されます)
次に文字列「みかん」を追加しました。$fruits変数の末尾に結合されて追加されます。
最後に文字列「ぶどう」を$fruits変数の末尾に結合して追加しました。
echoで出力すると、「りんごみかんぶどう」が出力されて、結合されたことが確認できました。
文字列リテラルに展開して結合する
変数の内容を文字列に展開して、他の変数の内容や文字列と結合することが可能です。
例えば、下記のように使います。
<?php
$apple = "りんご";
$orange = "みかん";
$fruits = "{$apple}{$orange}ぶどう";
echo $fruits; // りんごみかんぶどう
$apple変数に文字列「りんご」を追加して、$orange変数に文字列「みかん」を追加しました。
$fruits変数に、結合した文字列を代入しています。
文字列に$apple変数・$orange変数を展開して、「ぶどう」という文字列と一緒に$fruits変数に代入しました。
このようにダブルクォーテーション「"
」を使うことで、変数を展開することが可能です。
echoを使って出力すると「りんごみかんぶどう」が出力されました。
implode関数で結合する
implode関数を使うことで、配列の文字列を結合することが可能です。
公式のドキュメントはこちらになります。
例えば、下記のように使うことができます。
<?php
$fruits = ["りんご", "みかん", "ぶどう"];
echo implode($fruits); // りんごみかんぶどう
echo implode(",", $fruits); // りんご,みかん,ぶどう
最初に$fruits変数に対して、配列に文字列を3つ代入しています。
その後にimplode関数に配列を渡しています。
こうすると、渡された配列の内容が結合されて返ってきます。
echoで出力すると、結果「りんごみかんぶどう」になりました。
次の行で、第1引数に区切り文字を指定して、第2引数に同じ配列を渡しました。
こうすると、区切り文字で配列の文字列が、それぞれ区切られて返ってきます。
echoで出力すると、結果「りんご,みかん,ぶどう」になりました。
implode関数のまとめ
implode関数の使い方まとめです。
この関数はPHP4〜8で使うことが可能です。
引数
第1引数には、文字列または配列を渡します。
文字列を指定した場合は、配列の文字を区切る文字として扱われます。
文字列を指定したときには、第2引数に配列が必要です。配列がない場合はエラー(Uncaught TypeError
)になります。
第1引数に配列を指定した場合には、配列の内容を結合して返します。
PHP8.0以降は削除されているので、この渡し方をするとエラーになります。
戻り値
配列の順序を変えることなく、文字列を結合して返してくれます。
第1引数に文字列が渡された時は、それぞれの文字列を第1引数の文字列で結合して返します。
join関数で結合する
join関数を使うことで、配列の文字列を結合することが可能です。
この関数はimplode関数のエイリアス(別名)なので、同じように動作します。
公式のドキュメントはこちらになります。
先ほどのプログラムのimplode関数の箇所を、join関数に変えて、下記のように使ってみました。
<?php
$fruits = ["りんご", "みかん", "ぶどう"];
echo join($fruits); // りんごみかんぶどう
echo join(",", $fruits); // りんご,みかん,ぶどう
join関数に変えましたが、同じように動作します。
配列を渡すと、それぞれの文字列が結合されて、文字列「りんごみかんぶどう」が返ってきました。
join関数に「文字列と配列」を渡すと、渡した文字列で、配列のそれぞれの要素が区切られて返ってきました。
結果「りんご,みかん,ぶどう」が出力されます。
動画で確認する
Youtubeで文字列連結について解説しました。気になる方は確認してみてください。
コメント
implodeが
imploadeってなってるところありました
指摘ありがとうございます😄
修正させていただきました!