演習課題「explodeで文字列を分割してみよう」
標準入力でスラッシュ(/)で区切られたURLが与えられます。
explode関数を使い、スラッシュ(/)で分割し、配列に代入して
print_rで配列の中身を出力してみましょう。
期待する出力値
Array
(
[0] => paiza.jp
[1] => works
[2] => beginner4
[3] => lesson
[4] => 2124
[5] => php
)
演習課題「explodeで文字列を分割してみよう2」
標準入力で <> で区切られた文字列が与えられます。
explode関数を使い、<> で分割し、配列に代入して
print_rで配列の中身を出力してみましょう。
期待する出力値
Array
(
[0] => 勇者
[1] => 戦士
[2] => 侍
[3] => 忍者
[4] => 魔法使い
)
演習課題「配列の中身を数えてみよう」
標準入力でカンマ区切り( , )のデータが1行与えられます。
その中にいくつの要素が入っているかを数えて、その数を出力してください。
例 戦士,侍,忍者 という入力があったら「3」と出力する
期待する出力値
11
演習課題「配列の中身を1行づつ表示してみよう」
右側のエディターエリアのプログラムをもとに、標準入力で1行で与えられる
カンマ区切り( , )のデータを、カンマで分割して、各要素を1行ずつ
改行して出力してみましょう。
◆例
「戦士,侍,忍者」という入力があったら
戦士
侍
忍者
と出力しましょう。
ループで配列から要素を一つづつ取り出す場合は、ループカウンタ($iなど)は、0から始めるようにしましょう。配列のキー番号は0から始まるからです。
期待する出力値
勇者
戦士
侍
忍者
武士
演習課題「配列の中身を1行づつ表示してみよう2」
標準入力で1行で与えられるカンマ区切り( , )のデータを、
カンマで分割して、各要素を1行ずつ改行して
末尾に「さん」と付けて出力してみましょう。
◆例
「戦士,侍,忍者」という入力があったら
戦士さん
侍さん
忍者さん
と出力しましょう。
期待する出力値
勇者さん
戦士さん
侍さん
忍者さん
武士さん
#04:explodeで文字列を分割
このチャプターでは、explode関数を使い、カンマ等で区切られた
文字列を分割して配列に代入するやり方について学びます。
$配列名 = explode("分割する区切り文字", 分割したい文字列);
カンマで区切られたCSVデータのような、特定の区切り文字で区切られた文字列を分割して
配列に代入する関数です。
例 $string"= "a/b/c";
$array = explode("/", $string);
/で区切られたもじa,b,cを分割して配列に代入します。
$array[0]にはaが、$array[1]にはbが、$array[2]にはcが代入されます。
CSVデータを扱う際や、URLの分割などに利用します。
http://php.net/manual/ja/function.explode.php
■count() 関数
配列に含まれるすべての要素の数を数える。
http://php.net/manual/ja/function.count.php
■print_r() 関数
指定した配列、変数に関する情報を解りやすく出力する。
http://php.net/manual/ja/function.print-r.php
■fgets() 関数
ファイルポインタから 1 行取得する。
http://php.net/manual/ja/function.fgets.php
fgets(STDIN) で標準入力で与えられたデータを1行取得する事が出来ます。
■trim() 関数
文字列の先頭および末尾にあるホワイトスペースを取り除く。
http://php.net/manual/ja/function.trim.php
phpで下記の入力を受け取ると戦士
勇者
受け取った入力は
"戦士\n"・ "勇者\n"
となってしまいます。
この\n(改行)の有無で別の文字列として認識されてしまいます。
例えば、"戦士"と"戦士\n"は別の文字列として認識されてしまいます。
\n(改行)を取り除くために、trim("文字列\n")関数を使います。