人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPの質問です
入力に
apple 5 4
lemon 4 3
orange 2

というデータがあります
これを
for($i=1;$I<=3;$i++){
list($a,$b,$c)=explode(" ",trim(fgets(STDIN)));
}
とやると 3行目の3列目にデータがないのでエラーが出ます
どのように書けば、3行目の3列目を空白にして配列に取り込めるでしょうか?

●質問者: Izkgkf0CPUsl85gi0dBq
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● tobeoscontinue
ベストアンサー

list($a,$b,$c)=explode(" ",trim(fgets(STDIN))." ");
後ろに空白を追加してみてはどうでしょう。


Izkgkf0CPUsl85gi0dBqさんのコメント
おおお いけました!ありがとうございました! なんで最後に." "を入れるといけるんでしょうか?

Izkgkf0CPUsl85gi0dBqさんのコメント
http://php.net/manual/ja/function.explode.php phpリファレンスのexplodeのページを見ても載っておりません

tobeoscontinueさんのコメント
すいません。チェックしておらず遅くなりました。 > 3行目の3列目にデータがないのでエラーが出ます ということなので適当なデータを付加して3列目にすればいいわけです。 例えば" X"を付加したものをexplodeします。 apple,lemonでは要素数が4になりますが list($a,$b,$c)では4番目は無視されるので問題ありません。 気持ちが悪いならlimitを指定するといいでしょう。 explode(" ",trim(fgets(STDIN))." ",3); orangeでは要素数が3になるのでエラーになりませんが $cには"X"が代入されてしまうので" "にすることで""になります。

Izkgkf0CPUsl85gi0dBqさんのコメント
なるほど、そういうことだったんですね。 ありがとうございます!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ