uiuifree.com

- サイト制作のノウハウと最適化を目指して-

2020.11.14【PHP】文字列分割をするexplode関数の使い方

【PHP】文字列分割をするexplode関数の使い方

PHPで文字列を分割するときに使えるexplode関数は指定したい文字列で文字列を配列に変換してくれます。 文字列をカンマ、タブ、改行コードなどで配列に分割してデータを読み込みたい、そんな時にexplodeは使っていくことができます。

explode関数の使い方

explode関数は指定した文字列で文字列を分割して配列にします。

explode関数
explode ( string $delimiter , string $string [, int $limit = PHP_INT_MAX ] ) : array
パラメータ
delimiter 区切り文字列
string 入力文字列
limit limit に正の値が指定された場合、返される配列には 最大 limit の要素が含まれ
その最後の要素には string の残りの部分が全て含まれます。
もし limit パラメータが負の場合、 最後の -limit 個の要素を除く全ての構成要素が返されます。
limit パラメータがゼロの場合は、1 を指定したものとみなされます。

カンマ区切りの文字列を分割する

文字列分割で一番多い利用用途はCSV(カンマ区切り)やTSV(タブ区切り)などのファイルから読み込んだ文字列を分割したりすることです。
実際に文字列を分割する方法がこちら

サンプル
<?php
$csv = "ID,氏名,電話番号";
$data = explode(',', $csv);

var_dump($data);
output
array(3) {
  [0]=>
  string(2) "ID"
  [1]=>
  string(6) "氏名"
  [2]=>
  string(12) "電話番号"
}

explodeの第一引数に区切り文字を指定することで分割することができましたね。
ただCSVの読み込みでは文字列の中にカンマが入っていたらダブルコーテーションで囲われていたりするので実務ではfgetcsv()という別の関数を使って実装することをオススメします。

まとめ

文字列分割をするときはexplodeを使うことで分割することが学べました。同じ文字列の分割処理をするsplitという関数も調べたら出てくるのですが、こちらはPHP5.3.0で非推奨となりPHP7.0で削除されたので現在は使うことができません。分割処理はexplodeを使うと覚えておきましょう。

目次
PROFILE

このサイトを運営してるuiuifreeです。
渋谷のベンチャー企業で2年ほど新規事業を担当した後にフリーランスエンジニアにキャリア転換。
求人サイトの開発が多くエンジニア/看護師/保育士などの分野でサイトを運営しています。

アウトプット中の技術

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)