/**
* [lingxing 菱形]
* @param integer $num [总行数(菱形大小)]
* @return [type] [description]
*/
function lingxing($num=1){
//菱形行数必须为奇数
if ($num%2==0) {
$num++;
}
if ($num>1) {
$n=" ";
$z=($num+1)/2;//获取中间转折行数
$b="";//中间空格数
for($i=1;$i<=$num;$i++){
if ($z>=$i) {
for($j=1;$j<=$z-$i;$j++){
echo $n.$n.$n.$n.$n.$n.$n.$n;
}
if ($i!=1) {
if ($i==2) {
$b=$n.$n.$n.$n.$n.$n.$n.$n.$n.$n.$n.$n.$n.$n;
}else{
$b.=$n.$n.$n.$n.$n.$n.$n.$n.$n.$n.$n.$n.$n.$n.$n.$n.$n;
}
}
}else{
for($j=1;$j<=$i-$z;$j++){
echo $n.$n.$n.$n.$n.$n.$n.$n;
}
if ($i!=$num) {
if ($i==$num-1) {
$b=$n.$n.$n.$n.$n.$n.$n.$n.$n.$n.$n.$n.$n.$n;
}else{
$b=substr($b, 102);
}
}
}
if ($i==1 || $i==$num) {
echo "*";
}else {
echo "*".$b."*";
}
echo '<br>';
}
}else{
echo "*";
}
}
9行的菱形效果图:
画菱形主要控制中间部分空格数量,不同拼接可显示出不同图形