php - 如何在 table 内制作菱形图案/形状(星号)? (html + php)

标签 php html html-table

我必须在表格内使用 for 循环制作一个菱形星号。 它必须有“空白” <td>星号前后的空格移动并使其看起来居中,所以它看起来像钻石。我怎么做? (我在 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>";
?>

求助!

最佳答案

这是您的解决方案的新代码。我添加了将空白 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>";
?>

关于php - 如何在 table 内制作菱形图案/形状(星号)? (html + php),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40804926/

相关文章:

javascript - 如何创建旋转木马 div Bootstrap

html - 如何使背景图像和表格响应?

php - 修改 PHP/mysql 表上的值并更新服务器上的表

php - Codeigniter PHP MVC 困惑(新的 CI 小子)

php - 为什么 REQUEST_METHOD 被误报为 "GET"?

php - 动态图像和描述未正确显示

<td> 元素集的 HTML/CSS 宽度

php - Bootstrap Menu Dropdown <li> 向右移动

PHP 和 MySQL 仅在特定条件下回显字符串

mysql - 选择并显示表中具有相同值的行数