模式输出,卡住
Pattern Output, stuck
对这一切都很陌生,但我开始了...
我需要使用 table(无边框)和 for 循环制作 2 个模式:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
我确实解决了这个问题(可能不是最简单的方法,但它有效):
<table>
<b>Patroon I</b>
<?php
$pattern = array();
for($pyramid = 1; $pyramid <=6; $pyramid++){
$pattern[$pyramid] = $pyramid;
echo "<tr>
<td class='td1'>" . $pattern[1] . "</td>";
if(array_key_exists(2, $pattern)){
echo "<td class='td1'>" . $pattern[2] . "</td>";
}
if(array_key_exists(3, $pattern)){
echo "<td class='td1'>" . $pattern[3] . "</td>";
}
if(array_key_exists(4, $pattern)){
echo "<td class='td1'>" . $pattern[4] . "</td>";
}
if(array_key_exists(5, $pattern)){
echo "<td class='td1'>" . $pattern[5] . "</td>";
}
if(array_key_exists(6, $pattern)){
echo "<td class='td1'>" . $pattern[6] . "</td>";
}
echo "</tr>";
}
?>
</table>
和另一个模式
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
我似乎想不通。
我试图扭转之前的代码,尝试了 rsort($pattern),尝试了很多 IF 语句,现在我卡住了:S
有人给我提示吗?
谢谢!
尝试循环 2 次以获得输出。不要使用数组
<b>Patroon I</b>
<br>
<?php
for($pyramid = 1; $pyramid <=6; $pyramid++){
for($i=1;$i<=$pyramid;$i++)
{
echo $i." ";
}
echo "<br>";
}
?>
<b>Patroon II</b>
<br>
<?php
for($pyramid = 6; $pyramid >=1; $pyramid--){
for($i=1;$i<=$pyramid;$i++)
{
echo $i." ";
}
echo "<br>";
}
?>
您不需要任何数组或花哨的函数,只需要两个嵌套的 for 循环。
<table>
<?php
// 1
// 1 2
// 1 2 3
// ...
$rows = 6;
for ($row = 1; $row <= $rows; $row++) {
echo "<tr>";
for ($col = 1; $col <= $row; $col++) {
echo "<td class='td1'>" . $col . "</td>";
}
echo "</tr>";
}
?>
</table>
<br />
<table>
<?php
// 1 2 3 4 5 6
// 1 2 3 4 5
// 1 2 3 4
// ...
$rows = 6;
for ($row = $rows; $row > 0; $row--) {
echo "<tr>";
for ($col = 1; $col <= $row; $col++) {
echo "<td class='td1'>" . $col . "</td>";
}
echo "</tr>";
}
?>
</table>
在平衡 table 行的结束行标记前添加以下代码。
if ($span = $rows - $row)
echo "<td colspan='$span'></td>";
<?php
$pattern=array(1,2,3,4,5,6);
//var_dump($pattern);
for($pyramid1 = 6; $pyramid1 >=0; $pyramid1--){
echo "<tr>
<td class='td1'>";
for($i = 0; $i <=$pyramid1; $i++){
echo $pattern[$i] ;
}
echo "</td>";
echo "</tr>";
}
?>
</table>
对这一切都很陌生,但我开始了...
我需要使用 table(无边框)和 for 循环制作 2 个模式:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
我确实解决了这个问题(可能不是最简单的方法,但它有效):
<table>
<b>Patroon I</b>
<?php
$pattern = array();
for($pyramid = 1; $pyramid <=6; $pyramid++){
$pattern[$pyramid] = $pyramid;
echo "<tr>
<td class='td1'>" . $pattern[1] . "</td>";
if(array_key_exists(2, $pattern)){
echo "<td class='td1'>" . $pattern[2] . "</td>";
}
if(array_key_exists(3, $pattern)){
echo "<td class='td1'>" . $pattern[3] . "</td>";
}
if(array_key_exists(4, $pattern)){
echo "<td class='td1'>" . $pattern[4] . "</td>";
}
if(array_key_exists(5, $pattern)){
echo "<td class='td1'>" . $pattern[5] . "</td>";
}
if(array_key_exists(6, $pattern)){
echo "<td class='td1'>" . $pattern[6] . "</td>";
}
echo "</tr>";
}
?>
</table>
和另一个模式
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
我似乎想不通。
我试图扭转之前的代码,尝试了 rsort($pattern),尝试了很多 IF 语句,现在我卡住了:S
有人给我提示吗?
谢谢!
尝试循环 2 次以获得输出。不要使用数组
<b>Patroon I</b>
<br>
<?php
for($pyramid = 1; $pyramid <=6; $pyramid++){
for($i=1;$i<=$pyramid;$i++)
{
echo $i." ";
}
echo "<br>";
}
?>
<b>Patroon II</b>
<br>
<?php
for($pyramid = 6; $pyramid >=1; $pyramid--){
for($i=1;$i<=$pyramid;$i++)
{
echo $i." ";
}
echo "<br>";
}
?>
您不需要任何数组或花哨的函数,只需要两个嵌套的 for 循环。
<table>
<?php
// 1
// 1 2
// 1 2 3
// ...
$rows = 6;
for ($row = 1; $row <= $rows; $row++) {
echo "<tr>";
for ($col = 1; $col <= $row; $col++) {
echo "<td class='td1'>" . $col . "</td>";
}
echo "</tr>";
}
?>
</table>
<br />
<table>
<?php
// 1 2 3 4 5 6
// 1 2 3 4 5
// 1 2 3 4
// ...
$rows = 6;
for ($row = $rows; $row > 0; $row--) {
echo "<tr>";
for ($col = 1; $col <= $row; $col++) {
echo "<td class='td1'>" . $col . "</td>";
}
echo "</tr>";
}
?>
</table>
在平衡 table 行的结束行标记前添加以下代码。
if ($span = $rows - $row)
echo "<td colspan='$span'></td>";
<?php
$pattern=array(1,2,3,4,5,6);
//var_dump($pattern);
for($pyramid1 = 6; $pyramid1 >=0; $pyramid1--){
echo "<tr>
<td class='td1'>";
for($i = 0; $i <=$pyramid1; $i++){
echo $pattern[$i] ;
}
echo "</td>";
echo "</tr>";
}
?>
</table>