icon
icon

PHPでカンマ区切りの値を配列データに変換する方法を現役エンジニアが解説【初心者向け】

初心者向けにPHPでカンマ区切りの値を配列データに変換する方法について現役エンジニアが解説しています。カンマなどで区切られたデータを配列にするにはexplode関数を使います。explode関数とは、文字列などを引数で指定した区切り文字で分割して配列に変換する関数です。

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

監修してくれたメンター

井上 祐介

NEC・Microsoftの認定インストラクター。Z80アセンブラ・C++・C#・PHP・Javaなどの経験を経て業務で使用するプログラムの開発や新入社員プログラミング研修の講師を行った。

今回は、PHPでカンマ区切りの値を配列データに変換する方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

PHPでカンマ区切りのCSVファイルを読み込んだままでは、単なる長い文字列で扱いづらいですが、配列に変換するとプログラム中で扱いやすくなります。

目次

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

そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。

 

大石ゆかり

PHPでカンマで区切られた文字を配列で扱いたいんですが、どうしたらいいですか?

田島悠介

PHPには区切られた文字列を配列に変換するexplodeという便利な関数があるよ。

区切り文字を指定して、配列に変えてくれるんだ。

php explode

大石ゆかり

そんな便利な関数があるんですね。

田島悠介

カンマ区切りの文字列を配列にするにはexplode関数が使えるけど、カンマ区切りがファイルになったCSVを読み込むときはfgetcsv関数を使うんだ。

大石ゆかり

同じカンマ区切りでも使う関数が違うんですね。

田島悠介

そうなんだ。では、さっそくカンマ区切りの文字列を配列にする方法を解説するね。

大石ゆかり

お願いします!

 

この記事は、カンマ区切りの値を配列データに変換する関数 explodeの使用方法などを解説した記事です。

まだPHPでの開発に慣れていない方でも理解できる内容となっております。

※カンマ区切りはCSVファイルで使われていますが、CSVファイルからの読み込みにはfgetcsv関数を使います。詳しくは解説記事「簡単に変換できる!PHPでCSVファイルを読み込む方法【初心者向け】現役エンジニアが解説」をご覧ください。

カンマ区切りを配列に変換(explode関数)

explode関数とは

PHPのexplode関数は、区切られた文字列配列に変換する関数です。

区切り文字は指定ができるのでカンマ(,)の他、空白やアンパサンド(&)、セミコロン(;)など自由に指定できます。

書式

分割された文字列の配列 = explode(区切り文字, 区切られた文字列)

 

第1引数には、入力する文字を分割する区切り文字を渡します。

第2引数には、区切り文字で区切られた文字列を渡します。

分割した文字列は、配列となって返却されます。

※省略できるオプションとして第3引数に変換後の配列の要素数の最大値を渡すことができます。分割されなかった要素については、最後の配列にすべて格納されます。

※explode関数とは逆に、配列をカンマ区切りに変換するにはimplode関数を使います。implode関数について、詳しくは解説記事「PHPでimplodeを使う方法【初心者向け】」をご覧ください。

 

サンプルコード

カンマで区切られた文字列を配列に変換するサンプルコードです。

ソースコード

<?php
// カンマ区切りの文字列
$str_csv = "アップル,オレンジ,レモン,グレープ,メロン";

// カンマ区切りのデータを配列にする
$fruits = explode(",", $str_csv);

// 変換された配列を表示
print_r($fruits);
?>

実行結果

Array
(
    [0] => アップル
    [1] => オレンジ
    [2] => レモン
    [3] => グレープ
    [4] => メロン
)

解説

explode関数に区切り文字(”,” カンマ)と、区切り文字で区切られた文字列(”アップル,オレンジ,・・・”)を渡します。

explode関数の戻り値として、「アップル」「オレンジ」などの文字列が配列に格納されます。

 

【応用】URLのパスを分解する

URLをパスごとに分解したいとき、explode関数が使えます。

たとえば、「blog/staff」を「blog」と「staff」に分割して配列に変換します。

explode関数の区切り文字スラッシュ(/)にし、URLのパスを対象文字列として渡します。

※単にホスト名やパスやパラメータにURLを分解したいときはparse_url関数を使います。
※「command=show&id=3」のようなURLパラメータを分解するにはparse_str関数を使います。

 

サンプルコード

URLのパス「blog/staff/12/1」をパスごとに分解します。

ソースコード

<?php
// URLのパス
$str_path = "blog/staff/12/1";

// パスを配列にする
$paths = explode("/", $str_path);

// 変換された配列を表示
print_r($paths);
?>

実行結果

Array
(
    [0] => blog
    [1] => staff
    [2] => 12
    [3] => 1
)

解説

explode関数に区切り文字(“/” スラッシュ)とパスの文字列を渡します。

結果として、パスごとに区切られて配列に格納されます。

パスの最初や最後にスラッシュがあると、空の配列要素が格納されてしまいます。

※スラッシュが前後にある文字列をexplode関数に渡した場合
explode("/", "/blog/staff/12/1/");

Array
(
    [0] => 
    [1] => blog
    [2] => staff
    [3] => 12
    [4] => 1
    [5] => 
)

 

[PR] PHPプログラミングで挫折しない学習方法を動画で公開中

まとめ

カンマ区切りの文字列を分割するには、explode関数の区切り文字にカンマ(,)、対象文字列にカンマ区切りの文字列を渡します。

explode関数の戻り値は配列で取得します。

区切り文字スラッシュ(/)に指定すると、URLなどのパスを分解して配列に入れられます。

文字列を指定の文字で分割する処理は実務でもよく使うので、しっかりマスターしましょう。

 

大石ゆかり

カンマ区切りの文字列を配列にするにはexplode関数を使うんですね!

田島悠介

そうだね。URLの分割などいろいろ応用できるから覚えておくといいよ。

大石ゆかり

分かりました。ありがとうございます!

 

コラム

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

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

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

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

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

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

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

PHPを学習中の方へ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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