首先,從簡單的着手,打印出金字塔的右半部分,代碼如下
<?php $n=5; //金字塔行數 //外層的for循環控制層數 for($i=1;$i<=$n;$i++){ //內層的for循環控制每層*的個數 for($j=1;$j<=$i;$j++){ echo"*"; } echo"<br/>"; //每一層打印完換行 } ?>
然后打印出完整的金字塔,完整的金字塔,在上面的基礎下只需要做小小的修改,
<?php $n=5; //金字塔行數 for($i=1;$i<=$n;$i++){ //在打印*之前,先打印空格 for($k=1;$k<=$n-$i;$k++){ echo" "; } //內層控制每層*的個數 for($j=1;$j<=2*$i-1;$j++){ echo"*"; } echo"<br/>"; } ?>
注:把上面的代碼復制到php文件中,會出現不知名的錯誤,應該是格式問題,但是代碼是正確的。
然后是空心金字塔,代碼如下:
1 <?php 2 $n=5; 3 for($i=1;$i<=$n;$i++){ 4 for($k=1;$k<=$n-$i;$k++){ 5 echo" "; 6 } 7 //內層控制每層*的個數 8 for($j=1;$j<=$i*2-1;$j++){ 9 //第一層和最后一層*不變 10 if($i==1||$i==$n){ 11 echo"*"; 12 } 13 //其他層第一個和最后一個位置打印*,其他位置打印空格 14 else{ 15 if($j==1||$j==$i*2-1){ 16 echo"*"; 17 }else{ 18 echo" "; 19 } 20 } 21 } 22 echo"<br/>"; 23 } 24 echo"<hr/>" 25 ?>
接下來,是菱形
<?php $n=5; for($i=1;$i<=$n;$i++){ for($k=1;$k<=$n-$i;$k++){ echo" "; } //內層控制每層*的個數 for($j=1;$j<=$i*2-1;$j++){ //第一層和最后一層*不變 if($i==1){ echo"*"; } //其他層第一個和最后一個位置打印*,其他位置打印空格 else{ if($j==1||$j==$i*2-1){ echo"*"; }else{ echo" "; } } } echo"<br/>"; } for($i=$n;$i>=1;$i--){ for($k=1;$k<=$n-$i;$k++){ echo" "; } //內層控制每層*的個數 for($j=1;$j<=$i*2-1;$j++){ //第一層和最后一層*不變 if($i==1){ echo"*"; } //其他層第一個和最后一個位置打印*,其他位置打印空格 else{ if($j==1||$j==$i*2-1){ echo"*"; }else{ echo" "; } } } echo"<br/>"; } ?>
注:上述代碼在不同的瀏覽器可能顯示有差異
由於是初學php,如果上述代碼有錯誤之處,還請各位看客指正,謝謝!