php 画出一个菱形


    *
 ***
*****
*******

使用PHP 画出一个菱形,可以设置层级,

设总层数为$m,层级为$n 空格数量$i


分析上面的效果样板。可以看到,想要画出菱形 ,需要有两部分。一是空格 二是星星,

所以分析的步骤分为两步,

1 首先分析星星 

2 分析空格


星星 

层数  星星数量

1 -> 1

2 -> 3

3 -> 5

4 -> 7

可以看出 每层的星星数量 和层级的关系是 2*$n - 1


空格

层数  空格数量

1->3

2->2

3->1

4->0

所以空格的数量和层级的关系是$i = $m-$n


开始写方法


/**
* 使用php画出一个菱形
* @param int $m 总层数
*/
function lingxing($m){
   $m = (int)$m;
   for ($i=1;$i<=$m;$i++){
//        echo str_repeat(" ",$m-$i);
       echo str_repeat("&nbsp;",$m-$i);
       echo str_repeat('*',2*$i-1);
       echo '<br/>';
   }
}
lingxing(10);




运行上面的文件 就可以得出一个菱形。


image.png



这里说一下 ,如果直接使用 “ ”这样空格的话 输出空格是没有想过的。,查了一下 说是因为浏览器会过滤掉多余的空格 ,

换成“$nbsp;”

在谷歌和火狐上输出的菱形 都是有点向左偏,在360浏览器上也还行,就是上面的图片。

不过 这都不是重点,重点是我们要学会分析问题。。

来源: up61技术博客 欢迎分享 (QQ:529857614)

qq交流群:63739043 up61博客-php交流群

上一篇: [PHP内核探索]PHP中的哈希表
下一篇: php 实现杨辉三角