2012-05-03 53 views
1
$arr = array(1,2,4,7,12,17,21,24,26,27); 
for($i=1; $i<count($arr); $i++) { 
    for($j=$arr[$i-1]; $j<$arr[$i]; $j++) { 
     echo $j; 
    } 
    echo "<br>"; 
} 

我正在尝试使用for循环来制作看起来像钻石形状的形状。此时它看起来像半钻石形状。钻石形状的打印数字PHP

我想在这方面提供帮助。

+0

你要钻石的轮廓或填写完整的钻石?无论哪种情况,您都需要一个等宽字体来确保比例。 – Anthony

+0

@Anthony,我想他是指ASCII形状。 – Nadh

+0

@anthony我想要钻石轮廓。 –

回答

1

这是我能想出的最好:

echo '<pre style="text-align:center;">'; 
$arr = array(1,2,4,7,12,17,21,24,26,27); 
for($i=1; $i<count($arr); $i++) { 
    for($j=$arr[$i-1]; $j<$arr[$i]; $j++) { 
     echo $j; 
    } 
    echo "<br>"; 
} 

所以,你想要的是(无形状):

 1 
    2 4 
7 12 17 21 
    24 26 
     27 

我遇到了麻烦,其中线突破,因为数组中的数字不会出现“对称”数字。

还是你想这样的:

 1 
     2 4 
    7 12 
    17  21 
    24 26 
     27 
+0

我想要第一个形状。 –

1
<?php 

$kk=25; 
$m=1; 
for($kkk=1;$kkk<=7;$kkk++) 
{ 
     for($k=0;$k<=$kk;$k++) 
     { 
      echo ('&nbsp;'); 
     } 

     for($j=1; $j<=$m; $j++) 
     { 

      echo $j; 
     } 
      $kk=$kk-1 ; 
      echo "<br>"; 
      $m=$m+2; 

} 



?> 

满钻

<?php 

$kk=25; 
$m=1; 
for($kkk=1;$kkk<=5;$kkk++) 
{ 
     for($k=0;$k<=$kk;$k++) 
     { 
      echo ('&nbsp;'); 
     } 

     for($j=1; $j<=$m; $j++) 
     { 

      echo $j; 
     } 
      $kk=$kk-1 ; 
      echo "<br>"; 
      $m=$m+2; 

} 

$kk=22; 
$m=9; 
for($kkk=1;$kkk<=5;$kkk++) 
{ 
     for($k=1;$k<=$kk;$k++) 
     { 
      echo ('&nbsp;'); 
     } 

     for($j=$m; $j>=1; $j--) 
     { 

      echo $j; 
     } 
      $kk=$kk+1 ; 
      echo "<br>"; 
      $m=$m-2; 

} 




?> 
+0

这让我成为金字塔,而不是钻石。这是目标吗? – Anthony

+0

oops一秒钻石立即来到 – Satya

+0

更新了我的代码 – Satya

1
<?php 
echo '<div style="text-align:center;">'; 
$jeff = "5"; 
$y=1; 
for($x=1;$x<=$jeff+1;$x++){ 
    for($y=1;$y<$x;$y++) 
     { 
     echo"*"; 
     } 
     echo"<br>"; 
} 
$rey = $jeff-1; 
for($x=$rey;$x>=1;$x--){ 
    for($y=1;$y<$x;$y++) 
     { 
     echo"*"; 
     } 
     echo"<br>"; 
} 
echo"</div>" 
?> 
+0

最简单的我认为,变量$ jeff的值将是钻石的中心 –