这就是我所做的。它变成了
1
121
12321
1234321
但我希望我能得到
1234321
12321
121
1
我已经尝试了很多次,但我无法做到这一点。有谁可以帮忙?
我犯了一些错误吗?
<?php
$p=4;
for($x=1;$x<=$p;$x++)
{
for($q=$p;$q>$x;$q--)
{
echo "<center>";
}
for($k=1;$k<$x;$k++)
{
echo $k;
}
if($x>=1)
{
for($v=$x; $v>=1; $v--)
{
echo $v;
}
}
echo "<br>";
}
?>
如果你能告诉我我的错误,我将不胜感激。 谢谢
答案 0 :(得分:1)
您的方法是正确的,只需稍微更新,也可以反转第一个for
限制,从循环内删除echo "<center>";
并将其放在外面
<?php
$p=4;
echo "<center>";
for($x=$p;$x>0;$x--)
{
/* for($q=$p;$q>$x;$q--)
{ //Not at all needed
echo "<center>";
} */
for($k=1;$k<$x;$k++)
{
echo $k;
}
if($x>=1)
{
for($v=$x; $v>=1; $v--)
{
echo $v;
}
}
echo "<br>";
}
echo "</center>";
答案 1 :(得分:1)
或者更简单的方法:
$max = 4;
echo "<center>";
while ($max >= 1) {
$string = '';
for ($current = 1; $current <= $max; $current++) {
$string .= $current;
}
echo $string . strrev(substr($string, 0, -1));
echo '<br>';
$max--;
}
echo "</center>";
答案 2 :(得分:0)
试试这个:
echo '<center>';
$p=4;
for($x=4;$x>0;$x--)
{
for($k=1;$k<$x;$k++)
{
echo $k;
}
if($x>=1)
{
for($v=$x; $v>=1; $v--)
{
echo $v;
}
}
echo "<br>";
}
echo '</center>';
答案 3 :(得分:0)
这是您需要的功能:
function printCenterNb($nb, $html = true) {
if ($html)
echo '<center>';
for($i = $nb; $i > 0; $i--) {
for($i2 = 1; $i2 < $i; $i2++)
echo $i2;
for($i2 = $i; $i2>=1; $i2--)
echo $i2;
if ($html)
echo "<br>";
}
if ($html)
echo '</center>';
}
printCenterNb(5);