我正在为3x3平铺网格创建一系列坐标。
e.g。 (X:Y)
1:1 2:1 3:1
1:2 2:2 3:2
1:3 2:3 3:3
使用此代码:
$c1 = 1;
$c2 = 1;
for($i = 0; $i < 9; $i++){
if($c1 == 1){
$x = $c1;
$y = $c2;
++$c1;
}
elseif($c1 == 3){
$x = $c1;
$y = $c2;
$c1 = 1;
++$c2;
}
else{
$x = $c1;
$y = $c2;
++$c1;
}
echo $x.':'.$y.'<br />';
}
这是实现这一目标的最有效方法吗?
我有一种直觉,我错过了一些可以简化此程序的东西。
感谢您的光临。
答案 0 :(得分:3)
这应该有效:
for ($i = 1; $i <= 3; $i++) {
for ($j = 1; $j <= 3; $j++) {
echo $j . ":" . $i . " ";
}
echo "<br />";
}
答案 1 :(得分:2)
嵌套循环是你的朋友:
<?php
for ($row=1; $row<=3; $row++)
{
for ($col=1; $col<=3; $col++)
{
echo "{$col}:{$row} ";
}
echo PHP_EOL;
}
结果:
~> php -f g.php
1:1 2:1 3:1
1:2 2:2 3:2
1:3 2:3 3:3
享受
答案 2 :(得分:1)
这可能更简单:
<?php
$size = 3;
for ( $x=1; $x<=$size; $x++ ) {
for ( $y=1; $y<=$size; $y++ ) {
echo $y . ":" . $x . " ";
}
echo "<br />";
}
?>
答案 3 :(得分:1)
为什么不使用2个循环:
for($x = 1; $x <= 3 ; $x++) {
for($y = 1; $y <= 3; $y++)
echo $y . ' : ' . $x . ' ';
echo '<br>'
}
答案 4 :(得分:0)
<?php
function numberGrid($x, $y)
{
$output = '';
for($i = 1; $i <= $x; $i++)
{
for($j = 1; $j <= $y; $j++)
{
$output .= $i.':'.$j.' ';
}
$output .= "\n";
}
return $output;
}
echo '<pre>'.numberGrid(5, 7).'</pre>';
输出:
1:1 1:2 1:3 1:4 1:5 1:6 1:7
2:1 2:2 2:3 2:4 2:5 2:6 2:7
3:1 3:2 3:3 3:4 3:5 3:6 3:7
4:1 4:2 4:3 4:4 4:5 4:6 4:7
5:1 5:2 5:3 5:4 5:5 5:6 5:7
答案 5 :(得分:0)
<?php
for($i=1;$i<=3;$i++)
{
for($j=1;$j<=3;$j++)
{
echo $j.':'.$i.' ';
}
echo "\n";
}
?>