入力に 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列目を空白にして配列に取り込めるでしょうか?
list($a,$b,$c)=explode(" ",trim(fgets(STDIN))." ");後ろに空白を追加してみてはどうでしょう。
おおお いけました!ありがとうございました!なんで最後に." "を入れるといけるんでしょうか?
http://php.net/manual/ja/function.explode.phpphpリファレンスのexplodeのページを見ても載っておりません
すいません。チェックしておらず遅くなりました。> 3行目の3列目にデータがないのでエラーが出ますということなので適当なデータを付加して3列目にすればいいわけです。例えば" X"を付加したものをexplodeします。apple,lemonでは要素数が4になりますがlist($a,$b,$c)では4番目は無視されるので問題ありません。 気持ちが悪いならlimitを指定するといいでしょう。 explode(" ",trim(fgets(STDIN))." ",3);orangeでは要素数が3になるのでエラーになりませんが$cには"X"が代入されてしまうので" "にすることで""になります。
なるほど、そういうことだったんですね。ありがとうございます!
コメントはまだありません
これ以上回答リクエストを送信することはできません。制限について
ログインして回答する
すいません。チェックしておらず遅くなりました。
2016/11/12 09:35:16> 3行目の3列目にデータがないのでエラーが出ます
ということなので適当なデータを付加して3列目にすればいいわけです。
例えば" X"を付加したものをexplodeします。
apple,lemonでは要素数が4になりますが
list($a,$b,$c)では4番目は無視されるので問題ありません。
気持ちが悪いならlimitを指定するといいでしょう。
explode(" ",trim(fgets(STDIN))." ",3);
orangeでは要素数が3になるのでエラーになりませんが
$cには"X"が代入されてしまうので" "にすることで""になります。
なるほど、そういうことだったんですね。
2016/11/12 12:48:41ありがとうございます!