php 如何实现输出这个图形,  谢谢啦  *
 ***
*****
 ***
  *

解决方案 »

  1.   


    <?php
    //方法一
    echo "&nbsp;&nbsp;*<br/>";
    echo "&nbsp;***<br/>";
    echo "*****<br/>";
    echo "&nbsp;***<br/>";
    echo "&nbsp;&nbsp;*<br/>";
    ?>
      

  2.   


    <?php
    //方法二
    $max = 5;//这里设置最多的*,奇数
    for($i=1;$i<=$max;$i+=2){
    $blank = ($max - $i)/2;
    for($j=0;$j<$blank;$j++){
      echo "&nbsp;";
    }
    for($k=0;$j<$i;$k++){
      echo "*";
    }
    echo "<br/>";
    }
    for($i=$max-2;$i>=1;$i-=2){
    $blank = ($max - $i)/2;
    for($j=0;$j<$blank;$j++){
      echo "&nbsp;";
    }
    for($k=0;$j<$i;$k++){
      echo "*";
    }
    echo "<br/>";
    }
    ?>这个没测试过,应该没问题
      

  3.   

    <?php
    echo "<pre>
     *
     ***
     *****
     ***
     *
    </pre>";
    ?>
    我用这个实现的。不知道是不是楼主想要的
      

  4.   

    不是啦,要求是用一个for loop实现的,用户输入3以上的奇数,就可以生成类似的图形。
    如: 
     *
    ***     
     *  
      *
     ***
    *****
     ***
      *
      

  5.   

    给你一个提示,自己想吧,呵呵。
    function listz($sum){
        if ($sum%2==1){
                for($x=1;$x<$sum;$x++){
                      }
                          }
                                }
    listz($sum);
      

  6.   

    http://blog.csdn.net/ottozy/archive/2010/04/23/5520593.aspx
      

  7.   

    <?php
    //方法二
    $max = 5;//这里设置最多的*,奇数
    for($i=1;$i<=$max;$i+=2){
    $blank = ($max - $i)/2;
    for($j=0;$j<$blank;$j++){
      echo "&nbsp;";
    }
    for($k=0;$k<$i;$k++){
      echo "*";
    }
    echo "<br/>";
    }
    for($i=$max-2;$i>=1;$i-=2){
    $blank = ($max - $i)/2;
    for($j=0;$j<$blank;$j++){
      echo "&nbsp;";
    }
    for($k=0;$k<$i;$k++){
      echo "*";
    }
    echo "<br/>";
    }
    ?>
      

  8.   

    <?php 
    function printRhombus($n){
    if($n == 1){
    echo '*';
    }elseif($n%2 == 1){
    $ret = printOne($n,1);
    $newstr = strrev($ret);
    $newstr = substr($newstr,$n);
    $strrhombus .= $ret.$newstr;
    echo $strrhombus;
    }else{
    echo "请输入奇数";
    }
    }function printOne($n,$m){ if($n == $m){
    $retstr .= str_repeat("*",$m);
    }elseif($n>$m){
    $blanklen = ($n-$m)/2;
    $retstr .= str_repeat(" ",$blanklen);
    $retstr .= str_repeat("*",$m);
    $retstr .= str_repeat(" ",$blanklen);

    $m = $m + 2;
    $retstr .= printOne($n,$m);
    }
    return $retstr;
    }
    printRhombus(5);?>
      

  9.   


    <form action="" method="post">
    <input type="text" value="" name="Number" id="Number" />
    <input type="submit" value="submit" />
    </form>
    <?php
    function makeShape($iNum) {

    $arr = array();
    $s = "";
    for($i=1; $i<=$iNum; $i++) {

    for($j=1; $j<=$iNum - $i; $j++) {

    $s .= "&nbsp;";
    }
    for($k=1; $k<=2*$i-1; $k++) {

    $s .= "*";
    }
    $arr[$i] = "$s<br/>";
    unset($s);
    }
    return $arr;
    }
    $aShape = array();
    if(isset($_POST['Number'])) {

    $aShape = makeShape(($_POST['Number'] + 1)/2);
    for($i=1; $i<=count($aShape); $i++) {

    echo $aShape[$i];
    if($i == count($aShape)) {

    for($j= count($aShape)-1; $j>=1; $j--)
    echo $aShape[$j];
    }
    }
    }
    ?>