二つの配列を作り、出力するプログラムを作りたいと考えています
php
1$left = [""]; 2for ($i = 1; $i < 5; $i++){ 3array_push($left, $i); 4} 5 6$right = [""]; 7for ($i = 1; $i < 10; $i +=2){ 8array_push($right, $i); 9} 10 11for ($i = 0; $i < 5; $i++){ 12 echo $i."番目 "; 13 echo $left[$i]; 14 echo $right[$i]; 15 echo "\n"; 16}
出力結果
0番目 1番目 11 2番目 23 3番目 35 4番目 47
冒頭のコード一行目を
php
1$left = [];
に変えると
PHP Notice: Undefined offset: 4 in /workspace/Main.php on line 14
が出力されます
ですが
冒頭のコード7行目を
$right = [];
に変え(一行目は「 $left = [] 」 から 「 $left = [""] 」に戻して)出力すると、出力結果は
0番目 1 1番目 13 2番目 25 3番目 37 4番目 49
となり、無理やり出力しようとします
配列 $left と $right は内部構造的にどのような違いがあるのでしょうか?
ご存じの方ご教示していただけると幸いです。
ちなみに
php
1$right = []; 2for ($i = 1; $i < 10; $i +=2){ 3array_push($right, $i); 4} 5 6for ($i = 0; $i < 5; $i++){ 7 echo $i."番目 "; 8 echo $right[$i]; 9 echo "\n"; 10}
はエラーにならず
出力結果は
0番目 1 1番目 3 2番目 5 3番目 7 4番目 9
となります
(二行目の「 $i += 2 」を 「 $i++ 」に変えると 通常の連番出力)
実行環境はpaiza.ioのphpのオンライン実行環境です
paiza.io
追記
$left $right をそれぞれ
[][]
[""][""]
[""][]
[][""]
の組み合わせで
var_dump()の出力結果の一覧は以下の画像になります(テキストだと見にくいので画像にまとめました)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/15 15:01
2020/03/15 15:12
2020/03/15 15:15
2020/03/15 15:16