PHPのexplode()関数を使用し文字列を配列に分割することができます。
explode()関数は、文字列を配列に分割することができます。文字列を配列に分割する際は、区切り文字に基づいて文字列を分割します。
explode()関数は、文字列にNULLバイトが含まれていても正しく扱ってくれます。
■基本的な構文
explode(separator,string,limit)
separatorは、 文字列を分割するために使用する区切り文字を指定します。区切り文字を指定しますが、「空」の区切り文字を指定することはできません。指定すると、「Fatal error: Uncaught ValueError: explode(): Argument #1 ($separator) cannot be empty in」というエラーが発生します。
stringは、分割する文字列を指定します。
limitは、返すべき配列の要素数を指定します。可能な値は、「0より大きい(最大限のlimit要素を持つ配列を返す)」、「0より小さい(配列の最後のN要素が削除され、配列の残りの部分が返される)」「0(返される配列には1つの要素であり、つまり文字列全体が返される)」です。
■環境
・Windows10
・XAMPP 8.0.6
・PHP Version 8.0.6
■PHPのexplode()関数を使用し文字列を配列に分割する
では、PHPのexplode()関数を使用し文字列を配列に分割するスクリプトを書いていきます。
■コード
<html lang="ja">
<head>
<title>explode()関数を使用し文字列を配列に分割する</title>
</head>
<body>
<?php
$str = "私は 田中という者 住んでいる所は大阪 好きなものはたこやき";
print_r(explode(" ",$str));
?>
</body>
</html>
今回はstrという変数を定義し、その中に文字列を格納します。
格納後、explode()関数を使用します。explode()関数の括弧内には、第1の引数,パラメーターとして、文字列の区切り文字を渡します。今回は「” ”(スペース)」とします。第2の引数,パラメーターとして、str変数を渡します。渡された情報を元に、区切り文字で文字列が分割されて配列と返されます。
返された配列をprint_r()関数で出力します。
■実行
では、このスクリプトを「split_str_array.php」という名前で保存し、実行させてみます。
実行してみると、explode()関数を使用したことで、str変数内の文字列が区切り文字で分割され配列として返され、print_r()関数で出力させることができました。
■limit引数,パラメーターを使用し、配列の要素の数を指定する
次にlimit引数,パラメーターを使用し、配列の要素の数を指定してみます。
■コード(split_str_array_2.php)
<html lang="ja">
<head>
<title>explode()関数を使用し文字列を配列に分割する</title>
</head>
<body>
<?php
$str = "私は 田中という者 住んでいる所は大阪 好きなものはたこやき";
print_r(explode(" ",$str,0));
echo "<br>";
print_r(explode(" ",$str,2));
echo "<br>";
print_r(explode(" ",$str,-1));
?>
</body>
</html>
■実行
このスクリプトを「split_str_array_2.php」という名前で保存し実行してみると、explode()関数のlimit引数,パラメーターを使用したことで、str変数内の文字列が、こちらで指定した配列の要素の数に分割されていることが確認できました。
コメント