PHP forループ
解決したいこと
現在、PHPのforループの演習問題を解いているのですが、
回答を見ても理解できない部分があり、その部分の解説をして頂きたいです。
発生している問題・エラー
出題サイト
https://qiita.com/ta-k/items/5a1dd8da56e7a87ec58f
解答
https://qiita.com/ta-k/items/926f280b2119486ebce4
問題5
****1
***121
**12321
*1234321
123454321
*1234321
**12321
***121
****1
↑この問題の解答が下記の通りです。
for($a = 1 ; $a <= 9 ; $a ++){
if($a <= 5){
for($b = 4 ; $b >= $a ; $b --){
echo "";
}
for($c = 1; $c <= $a ; $c++){
echo $c;
}
for($d =$c -2 ; $d >= 1 ; $d--){
echo $d;
}
echo "
";
}
else if($a >=6 ){
for($e = 6 ; $e <= $a ; $e++){
echo "";
}
for($f = 1 ; $f <=10-$a ; $f++){
echo $f;
}
for($g = $f-2 ; $g >=1 ; $g --){
echo $g;
}
echo "
";
}
}
※なぜか上記の解答部分の表記がおかしくなっていますが、解答のURLの問題5を見て頂ければきちんとしたコードが確認できます。
この解答の最後のfor文、
for($g = $f-2 ; $g >=1 ; $g--){
echo $g;
}
この出力がなぜ
321
21
1
になるのかがわかりません。
自分で試したこと
上記のコードだと、最初のループで$fは「1234」と出力するので、
$fが「3、4」の際に$gの条件式が合い、「121」が出力されてしまうのではと考えました。
つまり、else if以降のコードが実行されると
*1234121
**1231
***12
****1
になるのでは思ったのですが、実際は異なっており、$gのfor文内での$fの変化が理解できません。
どなたかご回答頂けると幸いです。