icon
icon

PHPのexplode関数で文字列を分割する方法【初心者向け】

プログラミング初心者向けにPHPのexplode関数で文字列を文字または文字列で分割し、配列にして返す方法について解説しています。理解する上で役立つ事例も6つ紹介しているので、ぜひ自分でも書いてみて実際に使えるようになりましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

監修してくれたメンター

nakamoto

アジマッチ有限会社代表取締役社長。書籍化歓迎。対応業務:PHP(Laravel)、機械学習、Vue.js、LAMP・AWS、越境EC、CTO、エンジニア採用、CTO、経営者の不安解決コンサルティング。

今回は、PHPのexplode関数の使い方について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

PHPのexplode関数を利用すると、文字列を、特定の区切り文字で分割することが可能です。

PHPのexplode関数は、実務で文字列データから配列を作成する際に利用するので、ぜひ学習してみてください。

目次

1時間でできる無料体験!

そもそも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プログラミングで挫折しない学習方法を動画で公開中

実際に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個です。」になります。

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

文字列を分割する他の関数

ここでは、文字列を分割する他の関数を3個紹介します。

  1. preg_split()
  2. str_split()
  3. 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関数も使うと、単語数がわかったりするんですねー。

田島悠介

単純に文字列を区切って配列にするっていう関数だけど、応用例は多かったりするんだよ。

 

1時間でできる無料体験!

PHPを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのPHP/Laravelコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、PHP/Laravelを使ったWebアプリケーション開発を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する