PHPのexplode関数で文字列を分割する方法【初心者向け】
プログラミング初心者向けにPHPのexplode関数で文字列を文字または文字列で分割し、配列にして返す方法について解説しています。理解する上で役立つ事例も6つ紹介しているので、ぜひ自分でも書いてみて実際に使えるようになりましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
PHPで書くexplode関数の使い方について解説しています。
文字列を文字で分割し配列にして返すという方法ですが、実際にサンプルを載せているので、参考にしながら理解していきましょう。
そもそもPHPが何か分からない場合は、先にPHPとはの記事をご覧ください。
なお本記事は、TechAcademyのPHPオンライン講座の内容をもとにしています。
explode関数とは
explode関数とは、文字列を指定した文字列で分割する関数です。
たとえば、
“花子、太郎、和夫、隼人”
のような文字列データがあったとします。
この場合、文字列 “、”で分割すると、4名の名前に分割することになります。
"花子"、"太郎"、"和夫"、"隼人"
分割された文字列は、戻り値として返される配列の各要素として格納されます。
配列[0]= ”花子” 配列[1]= ”太郎” 配列[2]= ”和夫” 配列[3]= ”隼人”

田島メンター!文字列を文字で分割して配列にしてくれるのは便利だと思うんですが、どういう意味があるのでしょうか?

分割して配列にするとデータとして使えるよね。例えばこのページのURLは、magazine/11415ってなってるよね。スラッシュで分割すると、分類名とデータベースにある記事の番号に分けられるよね。

データとして何かに使えそうですね!

そうなんだ。実際にexplode関数を書いてみよう!
explode()の書き方
書式
explode(引数1、引数2、引数3)
説明
引数1:区切り文字(separator)
引数2:文字列(string)
引数3:戻り値として返す、配列の最大要素数(delimiter)
戻り値
分割した文字列の配列が返されます。
注意事項
・引数1で指定した文字列に、区切り文字がまったく含まれていなかった場合は、その文字列をそのまま返します。
・引数2の区切り文字が空文字(””)の場合は、実行時にwarningとなりますのでご注意ください。
・引数3の最大要素数が指定された場合は、最後の配列要素に残りの文字列がすべて格納されます。
[PR] PHPプログラミングで挫折しない学習方法を動画で公開中
実際にexplode関数を使ったプログラムを書いてみよう
それでは、実際にexplode関数を使用して、簡単なサンプルプログラムを作成してみましょう。
文字列を区切り文字 ” , ” (カンマ)で分割
“Tom,Mike,Wendy,Jane”という名前が記載された文字列を、区切り文字”,”で分割します。
サンプルプログラム1
<?php $frends = "Tom,Mike,Wendy,Jane"; $frend = explode(",",$frends); echo '<p>',$frend[0],'</p>'; echo '<p>',$frend[1],'</p>'; echo '<p>',$frend[2],'</p>'; echo '<p>',$frend[3],'</p>'; ?>
実行結果
文字列を区切り文字” ” (スペース)で分割
“baseball tennis soccer volleyball”という名前が記載された文字列を、区切り文字”,”で分割します。
サンプルプログラム2
<?php $sports = "baseball tennis soccer volleyball"; $sport = explode(" ",$sports); echo '<p>',$sport[0],'</p>'; echo '<p>',$sport[1],'</p>'; echo '<p>',$sport[2],'</p>'; echo '<p>',$sport[3],'</p>'; ?>
実行結果
最大要素数の指定
文字列を区切り文字 ” ” (スペース)で分割し、最大要素数を2に指定します。
サンプルプログラム3
<?php $sports = "baseball tennis soccer volleyball"; $sport = explode(" ",$sports,2); echo '<p>',$sport[0],'</p>'; echo '<p>',$sport[1],'</p>'; ?>
実行結果
文字列を区切り文字 ” ” (空文字)で分割
サンプルプログラム4
<?php $frends = "Tom,Mike,Wendy,Jane"; $frend = explode("",$frends); echo '<p>',$frend[0],'</p>'; echo '<p>',$frend[1],'</p>'; echo '<p>',$frend[2],'</p>'; echo '<p>',$frend[3],'</p>'; ?>
実行結果
下記のように区切り文字が空になっているとのエラーになってしまいますのでご注意ください。
Warning: explode(): Empty delimiter in C:xampphtdocsdashboardphp_samplephpexplode4.php on line 3
英文の単語の数をカウント
英語の文章を、区切り文字” “(スペース)で単語に分割し、単語の数を数えてみましょう。
サンプルプログラム5
<?php $introduction = "Hi! My name is Mike. I am a system engineer. I have been working for my company for 30 years."; echo '<p>','次の英文の単語の数を数えてみましょう。','</p>'; $words = explode(" ",$introduction); echo '<p>',$introduction,'</p>'; echo '<p>','単語の数は ',count($words),' です。','</p>'; ?>
実行結果
おわりに
英文の単語の数を数えるプログラムは、explode関数を使えば、2行程度でできてしまうんですね。
まだまだ、いろいろな使い方がありそうです。ぜひ、活用してみてください。

explode関数は、最初に区切る文字を指定して、後に文字列を指定するんですね。

そうそう。explodeは区切り文字を指定するんだ。

count関数も使うと、単語数がわかったりするんですねー。

単純に文字列を区切って配列にするっていう関数だけど、応用例は多かったりするんだよ。
PHPを勉強していて、
- もっと効率的に勉強したい
- 誰かに聞きながら学びたい
- 自分でWebサービスを作りたい
と思ったことはないでしょうか。
そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。
現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、オリジナルWebサービスを開発することが可能です。
独学に限界を感じている場合はご検討ください。

プログラミングを独学していて、このように感じた経験はないでしょうか?
- ・調べてもほしい情報が見つからない
- ・独学のスキルが実際の業務で通用するのか不安
- ・目標への学習プランがわからず、迷子になりそう
テックアカデミーでは、このような
学習に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供
しています。
30分間、オンラインでどんなことでも質問し放題です。
「受けてよかった」と感じていただけるよう
厳しい試験を通過した講師
があなたの相談に真摯に向き合います。
「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」
こんな気持ちでも大丈夫です。
無理な勧誘は一切ありません
ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)