2016-11-25 103 views
5

我必須製作一個鑽石形的星號,用於表格內的循環。 星號前後必須有空格<td>空格,並使其看起來中心爲,所以它看起來像一顆鑽石。我怎麼做? (我用PHP的HTML代碼中。)如何在表格內做一個菱形圖案/形狀(星號)? (html + php)

代碼沒有<tr><td>標籤,它看起來像一顆鑽石,因爲它是居中對齊:

<center> 
<?php 
echo "<table border = 1>"; 

    // loop for the pyramid 

     for($i = 1; $i <= 10; $i += 2) { 
      for($j = 1; $j <= $i; $j++) { 
       echo "* "; 
      } 
     echo "<br />"; 
     } 

    // loop for the inverted pyramid, so it looks like a diamond 

    for($i = 7; $i >= 1; $i -= 2) { 
     for($j = 1; $j <= $i; $j++) { 
      echo "* "; 
     } 
    echo "<br />"; 
    } 

echo "</table>"; 
?> 
</center> 

代碼與<tr><td>標籤,需要「空格「爲它看起來像它的中心對齊:

<?php 
echo "<table border = 1>"; 

    // loop for the pyramid 

    echo "<tr>"; 
      for($i = 1; $i <= 10; $i += 2) { 
      echo "<tr>"; 
       for($j = 1; $j <= $i; $j++) { 
        echo "<td>* </td>"; 
       } 
      echo "</tr>"; 
     } 
    echo "</tr>"; 

    // loop for the inverted pyramid, so it looks like a diamond 

    for($i = 7; $i >= 1; $i -= 2) { 
    echo "<tr>"; 
     for($j = 1; $j <= $i; $j++) { 
      echo "<td>* </td>"; 
     } 
    echo "<br />"; 
    echo "</tr>"; 
    } 

echo "</table>"; 
?> 

請幫助!

回答

4

這是新的代碼與您的解決方案。我已經添加邏輯把空白td向前和向後*

<?php 
echo "<table border = 1>"; 

    // loop for the pyramid 

    echo "<tr>"; 
    $max = $initAmount = 10; 
      for($i = 1; $i <= $initAmount; $i += 2) { 
       $max = $max -2; 

        $halfTD = (int)$max/2; 
      echo "<tr>"; 
      for($b = 1; $b <= $halfTD; $b++){ 
         echo "<td></td>"; 
        } 
       for($j = 1; $j <= $i; $j++) { 


        echo "<td>* </td>"; 
       } 
       for($b = 1; $b <= $halfTD; $b++){ 
         echo "<td></td>"; 
        } 
      echo "</tr>"; 
     } 
    echo "</tr>"; 

    // loop for the inverted pyramid, so it looks like a diamond 
$max = $initAmount = 10; 
    for($i = 7; $i >= 1; $i -= 2) { 
     $max = $max -2; 
     $diff = $initAmount - $max; 
     $blankTd = $diff/2; 

    echo "<tr>"; 
     for($b = 1 ; $b <= $blankTd; $b++){ 
      echo "<td></td>"; 
     } 
     for($j = 1; $j <= $i; $j++) { 
      echo "<td>* </td>"; 
     } 
     for($b = 1 ; $b <= $blankTd; $b++){ 
      echo "<td></td>"; 
     } 
    echo "</tr>"; 
    } 

echo "</table>"; 
?> 
+0

非常感謝!這幫助了很多。看起來不錯!我也想問,你是如何形成變量和邏輯的?你是怎麼想出來的? =)我想更多地瞭解您的解決方案。 =) – Kenny

+0

您好,關於邏輯,我對腳本生成的html做了一些分析,並計算出我們需要的空白TD數量。並根據您的整數值,如10和您的增量值,如2我已經計算出我們需要的總空白TD。我將它除以2,因爲我們需要將空白TD的一半向前*放置,並且在*之後放置一半空白TD。對於你的逆金字塔也是如此 – kevin

+0

這真的很有幫助。非常感謝你! – Kenny