PHPで文字列を結合(連結)する4つの方法!

PHP

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引数に配列を指定した場合には、配列の内容を結合して返します。

※PHP7.4までは、第1引数に配列・第2引数に区切り文字を指定できました。
PHP8.0以降は削除されているので、この渡し方をするとエラーになります。

戻り値

配列の順序を変えることなく、文字列を結合して返してくれます。
第1引数に文字列が渡された時は、それぞれの文字列を第1引数の文字列で結合して返します。

join関数で結合する

join関数を使うことで、配列の文字列を結合することが可能です。
この関数はimplode関数のエイリアス(別名)なので、同じように動作します。
公式のドキュメントはこちらになります。

先ほどのプログラムのimplode関数の箇所を、join関数に変えて、下記のように使ってみました。

<?php
$fruits = ["りんご", "みかん", "ぶどう"];

echo join($fruits); // りんごみかんぶどう
echo join(",", $fruits); // りんご,みかん,ぶどう

join関数に変えましたが、同じように動作します。
配列を渡すと、それぞれの文字列が結合されて、文字列「りんごみかんぶどう」が返ってきました。

join関数に「文字列と配列」を渡すと、渡した文字列で、配列のそれぞれの要素が区切られて返ってきました。
結果「りんご,みかん,ぶどう」が出力されます。

動画で確認する

Youtubeで文字列連結について解説しました。気になる方は確認してみてください。

コメント

  1. 匿名 より:

    implodeが
    imploadeってなってるところありました

タイトルとURLをコピーしました