【完全ガイド】PHPで文字列を分割!基礎から応用までの7つの方法

PHPで文字列を分割するイメージ図PHP
この記事は約6分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

PHPの世界へようこそ。

PHPは強力で、そしてとても使いやすいプログラミング言語です。

特に、文字列の操作に関しては多くの便利な関数を提供しています。今回の記事では、文字列を分割する方法を紹介します。

この記事を読めば、文字列をうまく分割するテクニックを身につけることができます。

具体的なサンプルコードを交えながら、基本的な使い方から応用的な使い方までを詳しく解説します。

●PHPで文字列を分割する基本:explode関数

まずは、PHPで文字列を分割する最も基本的な方法を見ていきましょう。

それが「explode」関数です。この関数は、文字列を指定した区切り文字で分割し、それぞれの部分文字列を配列に格納します。

○サンプルコード1:explode関数の基本的な使い方

このサンプルコードでは、カンマを区切り文字として文字列を分割しています。

文字列”apple,banana,cherry”が、explode関数によって配列[‘apple’, ‘banana’, ‘cherry’]に変換されます。

<?php
$fruits = "apple,banana,cherry";
$fruits_array = explode(",", $fruits);
print_r($fruits_array); // 結果:Array ( [0] => apple [1] => banana [2] => cherry )
?>
¥

このように、explode関数は指定した区切り文字で文字列を分割し、配列に格納することができます。

●str_split関数による文字列の分割

次に、文字列を等分に分割する方法を見ていきましょう。

そのための関数が「str_split」関数です。

この関数は文字列を指定した長さの部分文字列に分割し、配列に格納します。

○サンプルコード2:str_split関数の使い方

このサンプルコードでは、2文字ずつ文字列を分割しています。

文字列”HelloWorld”が、str_split関数によって配列[‘He’, ‘ll’, ‘oW’, ‘or’, ‘ld’]に変換されます。

<?php
$string = "HelloWorld";
$string_array = str_split($string, 2);
print_r($string_array); // 結果:Array ( [0] => He [1] => ll [2] => oW [3] => or [4] => ld )
?>

str_split関数は、特定の長さで文字列を等分に分割するときに便利な関数です。

●substr関数を用いた部分文字列の取得

文字列の特定の部分を切り出す場合、substr関数が有効です。

この関数は指定した開始位置から指定した長さの文字列を取得します。

○サンプルコード3:substr関数の使い方

このコードでは、6番目の文字から3文字分を取得しています。

元の文字列”HelloWorld”から、”Wor”が取り出されます。

<?php
$string = "HelloWorld";
$substring = substr($string, 5, 3);
echo $substring; // 結果:Wor
?>

substr関数は特定の位置から特定の長さの部分文字列を取得するのに役立ちます。

●PHPで文字列を分割する応用例

次に、PHPで文字列を分割する応用例を見ていきましょう。

文字列の分割は単に文字列を配列に変換するだけでなく、データの解析や変換など、様々な場面で利用できます。

○サンプルコード4:CSVデータのパース

このコードでは、CSVデータをパースする方法を示しています。

各行を改行で分割し、各項目をカンマで分割します。

<?php
$csv_data = "apple,10\nbanana,20\ncherry,30";
$rows = explode("\n", $csv_data);
foreach ($rows as $row) {
    $columns = explode(",", $row);
    echo "名前: $columns[0], 数量: $columns[1]\n";
}
?>

このように、CSVデータのパースは文字列の分割を活用する一例です。

○サンプルコード5:文字列の逆順表示

このコードでは、文字列を逆順に表示する方法を示しています。

文字列を一文字ずつ分割し、配列を逆順にしてから結合します。

<?php
$string = "HelloWorld";
$string_array = str_split($string);
$reversed_array = array_reverse($string_array);
$reversed_string = implode("", $reversed_array);
echo $reversed_string; // 結果:dlroWolleH
?>

文字列を逆順にするには、文字列の分割と配列の逆順操作を組み合わせます。

○サンプルコード6:文字列のランダムシャッフル

このコードでは、文字列のランダムシャッフルの方法を示しています。

文字列を一文字ずつ分割し、配列をシャッフルしてから結合します。

<?php
$string = "HelloWorld";
$string_array = str_split($string);
shuffle($string_array);
$shuffled_string = implode("", $string_array);
echo $shuffled_string;
?>

文字列をランダムにシャッフルするには、文字列の分割と配列のシャッフルを組み合わせます。

●PHPで文字列を分割する際の注意点と対処法

文字列を分割する際には、いくつかの注意点があります。

たとえば、区切り文字が存在しない場合、explode関数は全体を一つの要素とする配列を返します。

また、str_split関数で指定した長さが文字列の長さを超える場合、全体が一つの要素となります。

こうした問題を防ぐためには、関数の戻り値をチェックしたり、入力値を適切にバリデートしたりする必要があります。

●カスタマイズ方法

PHPの文字列分割関数は非常に便利ですが、特定のニーズに応じてカスタマイズすることも可能です。

たとえば、preg_split関数を使用すると、正規表現による分割が可能になります。

これにより、非常に複雑なパターンで文字列を分割することができます。

まとめ

以上、PHPにおける文字列の分割方法について説明しました。

explode関数、str_split関数、substr関数を中心に、基本的な使用方法から応用例までを詳しく解説しました。

これらの関数を活用することで、文字列操作の幅が広がります。

何事も基本が大切ですので、まずはこの記事で紹介した基本的な関数の使い方をマスターし、PHPでの文字列操作を楽しみましょう。