PHPのexplode関数で文字列を分割する方法【初心者向け】
プログラミング初心者向けにPHPのexplode関数で文字列を文字または文字列で分割し、配列にして返す方法について解説しています。理解する上で役立つ事例も6つ紹介しているので、ぜひ自分でも書いてみて実際に使えるようになりましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
監修してくれたメンター
nakamoto
今回は、PHPのexplode関数の使い方について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
PHPのexplode関数を利用すると、文字列を、特定の区切り文字で分割することが可能です。
PHPのexplode関数は、実務で文字列データから配列を作成する際に利用するので、ぜひ学習してみてください。
目次
そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。
explode関数とは
explode関数とは、文字列を指定した文字列で分割する関数です。
たとえば、「花子、太郎、和夫、隼人」のような文字列データがあったとします。
この場合、文字列「”」で分割すると、次のような4名の名前に分割することになります。
"花子"、"太郎"、"和夫"、"隼人"
分割された文字列は、戻り値として返される配列の各要素として格納されます。
配列[0]= ”花子” 配列[1]= ”太郎” 配列[2]= ”和夫” 配列[3]= ”隼人”
田島メンター!文字列を文字で分割して配列にしてくれるのは便利だと思うんですが、どういう意味があるのでしょうか?
分割して配列にするとデータとして使えるよね。例えばこのページのURLは、magazine/11415ってなってるよね。スラッシュで分割すると、分類名とデータベースにある記事の番号に分けられるよね。
データとして何かに使えそうですね!
そうなんだ。実際にexplode関数を書いてみよう!
explode()の書き方
書式
explode($delimiter,$string,$limit)
説明
引数1:$delimiterには、区切り文字を指定します。
引数2:$stringには、文字列処理する文字列を指定します。
引数3:$limitには、戻り値として返す、配列の最大要素数を指定します。
戻り値
分割した文字列の配列が返されます。
注意事項
・引数1で指定した文字列に、区切り文字がまったく含まれていなかった場合は、その文字列をそのまま返します。
・引数2の区切り文字が空文字(“”)の場合は、実行時にwarningとなりますのでご注意ください。
・引数3の最大要素数が指定された場合は、最後の配列要素に残りの文字列がすべて格納されます。
[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは
実際にexplode関数を使ったプログラムを書いてみよう
それでは、実際にexplode関数を使用して、簡単なサンプルプログラムを作成してみましょう。
文字列を区切り文字 ” , ” (カンマ)で分割
“PHP,オンラインプログラミング,短期集中,現役エンジニアがメンター”という名前が記載された文字列を、区切り文字「,」で分割します。
サンプルプログラム1
<?php
$macbooks = "PHP,オンラインプログラミング,短期集中,現役エンジニアがメンター";
$macbook = explode(",",$macbooks);
print_r($macbook);
実行結果
解説
<?phpでは、PHPプログラムを開始することを意味します。
$macbooks = “PHP,オンラインプログラミング,短期集中,現役エンジニアがメンター”;では、”PHP,オンラインプログラミング,短期集中,現役エンジニアがメンター”という文字列を、変数$macbooks に代入します。
$macbook= explode(“,”,$macbooks );では、explode関数を利用して、変数$macbooks に代入した文字列を,(カンマ)で分割します。
print_r($macbook); では、変数$macbookを表示します。
表示結果は次のように、変数$macbooks の文字列を、カンマで分割した配列データになります。
Array
(
[0] => PHP
[1] => オンラインプログラミング
[2] => 短期集中
[3] => 現役エンジニアがメンター
)
文字列を区切り文字” ” (スペース)で分割
“PHP オンラインプログラミング 短期集中 現役エンジニアがメンター”という文字列を、区切り文字” “(半角スペース)で分割します。
サンプルプログラム
<?php
$macbooks = "PHP オンラインプログラミング 短期集中 現役エンジニアがメンター";
$macbook= explode(" ",$macbooks);
print_r($macbook);
実行結果
解説
<?phpでは、PHPプログラムを開始することを意味します。
$macbooks = “PHP オンラインプログラミング 短期集中 現役エンジニアがメンター”;では、”PHP,オンラインプログラミング,短期集中,現役エンジニアがメンター”という文字列を、変数$macbooks に代入します。
$macbook= explode(” “,$macbooks);では、explode関数を利用して、変数$macbooks に代入した文字列を (半角スペース)で分割します。
print_r($macbook); では、変数$macbookを表示します。
表示結果は次のように、変数$macbooks の文字列を、半角スペースで分割した配列データになります。
Array
(
[0] => PHP
[1] => オンラインプログラミング
[2] => 短期集中
[3] => 現役エンジニアがメンター
)
最大要素数の指定
文字列を区切り文字 ” ” (スペース)で分割し、最大要素数を2に指定します。
サンプルプログラム
<?php
$macbooks = "PHP オンラインプログラミング 短期集中 現役エンジニアがメンター";
$macbook= explode(" ",$macbooks,2);
print_r($macbook);
実行結果
解説
<?phpでは、PHPプログラムを開始することを意味します。
$macbooks = “PHP オンラインプログラミング 短期集中 現役エンジニアがメンター”;では、”PHP,オンラインプログラミング,短期集中,現役エンジニアがメンター”という文字列を、変数$macbooks に代入します。
$macbook= explode(” “,$macbooks,2);では、explode関数を利用して、変数$macbooks に代入した文字列を (半角スペース)で分割します。
第3引数に指定した2で、分割する配列の最大要素数を2に指定して、2個目の配列に残りのデータをすべて代入します。
print_r($macbook); では、変数$macbookを表示します。
表示結果は次のように、変数$macbooks の文字列を、半角スペースで分割し、分割する配列の最大要素数を2に指定して、2個目の配列に残りのデータをすべて代入したデータになります。
Array
(
[0] => PHP
[1] => オンラインプログラミング 短期集中 現役エンジニアがメンター
)
文字列を区切り文字 ” ” (空文字)で分割
文字列指定する区切り文字がない場合を例に、区切り文字 ” ” (空文字)で分割する方法を解説します。
サンプルプログラム
<?php
$macbooks = "PHP オンラインプログラミング 短期集中 現役エンジニアがメンター";
$macbook= explode("",$macbooks,);
print_r($macbook);
実行結果
解説
<?phpでは、PHPプログラムを開始することを意味します。
$macbooks = “PHP オンラインプログラミング 短期集中 現役エンジニアがメンター”;では、”PHP,オンラインプログラミング,短期集中,現役エンジニアがメンター”という文字列を、変数$macbooks に代入します。
$macbook= explode(“”,$macbooks);では、explode関数を利用して、変数$macbooks に代入した文字列を 空文字で分割します。
print_r($macbook); では、変数$macbookを表示します。
$makbooks内に空文字が存在しないため、表示結果は次のように、エラーになります。
PHP Fatal error: Uncaught ValueError: explode(): Argument #1 ($separator) cannot be empty in /workspace/Main.php:3
Stack trace:
#0 /workspace/Main.php(3): explode()
#1 {main}
thrown in /workspace/Main.php on line 3
英文の単語の数をカウント
英語の文章を、区切り文字” “(スペース)で単語に分割し、単語の数を数える方法を解説します。
サンプルプログラム
<?php
$macbooks = "PHP オンラインプログラミング 短期集中 現役エンジニアがメンター";
$macbook= explode(" ",$macbooks);
echo '単語の数は、',count($macbook),'個です。';
実行結果
解説
<?phpでは、PHPプログラムを開始することを意味します。
$macbooks = “PHP オンラインプログラミング 短期集中 現役エンジニアがメンター”;では、”PHP,オンラインプログラミング,短期集中,現役エンジニアがメンター”という文字列を、変数$macbooks に代入します。
$macbook= explode(” “,$macbooks,2);では、explode関数を利用して、変数$macbooks に代入した文字列を (半角スペース)で分割します。
echo ‘単語の数は、’,count($macbook),’個です。’;では、cont関数を利用して、$macbookに格納されている配列数を個数として表示しています。
表示結果は、「単語の数は、4個です。」になります。
文字列を分割する他の関数
ここでは、文字列を分割する他の関数を3個紹介します。
- preg_split()
- str_split()
- mb_split()
preg_split()
preg_split()は、正規表現ルールにもとづいて、文字列を分割して返します。
PHPのsplit関数で文字列を分解して配列で返す方法 も参考にしてみてください。
str_split()
str_split()は、文字列を配列に変換することができます。
mb_split()
mb_split()は、マルチバイト文字列を正規表現を利用して分割します。
マルチバイト文字列というのは、1文字が2バイト以上の文字列を言います。
日本語のような全角で表示される文字列はマルチバイト文字列です。
まとめ
explode関数を利用すると、区切り文字を利用した文字変換が可能になりました。
explode関数を利用すると、配列にデータを代入することもできました。
単語の数を数えるプログラムは、explode関数を使えば、2行程度でできました。
explode関数は、最初に区切る文字を指定して、後に文字列を指定するんですね。
そうそう。explodeは区切り文字を指定するんだ。
count関数も使うと、単語数がわかったりするんですねー。
単純に文字列を区切って配列にするっていう関数だけど、応用例は多かったりするんだよ。
PHPを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPHP/Laravelコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、PHP/Laravelを使ったWebアプリケーション開発を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!