演習課題「標準入力のすべての行を取得する」
標準入力で行数不明の複数行のデータが入力されます。
右側のエディターエリアのプログラムをもとに、標準入力で空行が出現するまでの
全ての行の値を配列に代入し、print_rで出力してください。
期待する出力値
Array
(
[0] => 勇者
[1] => 戦士
)
演習課題「標準入力のすべての行を取得する2」
標準入力で行数不明の複数行のデータが入力されます。
右側のエディターエリアのプログラムをもとに、標準入力の全ての行の値に
末尾に「さん」を付けて、1行づつ改行して出力するように書き換えてください。
※配列に追加する必要はありません
期待する出力値
勇者さん
戦士さん
演習課題「勇者を捜せ!」
標準入力で行数不明の複数行のデータが入力されます。
右側のエディターエリアのプログラムをもとに、標準入力から
入力される値が「勇者」となっているものだけを判別して、
全部で勇者が何回登場したかを整数で出力してください。
$inputの中身が勇者かどうか判定し、勇者だけを配列に代入、ループ終了後に配列の要素数を集計すると簡単に出来ます。
期待する出力値
2
#05:配列にデータを格納してみよう1
このチャプターでは、標準入力からの複数行データを読み込み、
配列に格納するやり方について学びます。CSVデータの読み込みや、
外部データを読み込んで処理をおこないたい場合に必須の技術です。
while(ループを続ける条件式){
// 繰り返し実行する処理
}
while($hoge) と書くと、変数 $hoge の中に何か値が
ある限りwhileループが回り続ける事になります。
$hoge の中が空になった場合($hoge ="";)ループを抜けます。
逆に $hoge の値が空の場合のみループをまわしたい場合は
while(!$hoge) と書きます。
while文のチャプター(PHP入門3-3、3-4)
http://paiza.jp/works/php/primerfemale/beginner-php3-female/2322
http://paiza.jp/works/php/primerfemale/beginner-php3-female/2323
IF(条件式){
// 条件に当てはる場合実行する処理
}
IF文のチャプター(PHP入門2-1、2-2)
http://paiza.jp/works/php/primerfemale/beginner-php2-female/2310
http://paiza.jp/works/php/primerfemale/beginner-php2-female/2311
■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")関数を使います。