PHP Bingo脚本-回显某些数字


PHP Bingo Script - echo certain numbers

我想回显6行6列的数字。第一行是10-20,下一行是20-30,以此类推。我想在一行中同时回显6个数字,这样代码就能保持整洁和高效。有人能指引我正确的方向吗?

这是我到目前为止的代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"     "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Indzendopdracht 051R3</title>
</head>
<body>
<?PHP
function printBingocard(){
$bingoNumbers = array(
    "numbers" => array(10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69)
);
$rand_keys = array_rand($bingoNumbers, 1);  

    foreach($bingoNumbers as $bingoNumbers){
    echo "<table border='1'>";
    echo "<tr>";

    if($bingoNumbers > 10 and < 20){
    echo "<td>" . $bingoNumbers[array_rand($bingoNumbers)] . "<br />" . "</td>";
    }
    else{
        echo "";
    }

    echo "</tr>";
    echo "</table>";
    }
}
printBingocard();
?>
</body>
</html>

您在$ bingonnumbers数组中声明了一个名为"numbers"的数组中的数字。

所以当你循环它的时候你需要使用"numbers"数组。像这样…

 foreach($bingoNumbers["numbers"] as $bn){
   if($bn > 10 && $bn < 20){
    echo "<td>" . $bingoNumbers["numbers"][array_rand($bingoNumbers["numbers"])] . "<br />" . "</td>";
   }
 }

还有,你用了AND这个词,而不是&&在你的比较中,并没有在第二次比较中包含变量

  $bungoNumbers > 10 and < 20        should be        $bn>10 && $bn<20

现在,你需要回显表。您需要将每一行放入另一个数组中,以便稍后以正确的顺序将它们回显到表中。因为键的值是随机的。

一样……

$rows=array();
foreach($bingoNumbers["numbers"] as $bn){
  if($bn > 10 && $bn <= 20){
   $rows["row1"][]="<td>" . $bingoNumbers["numbers"][array_rand($bingoNumbers["numbers"])] ."</td>";
  }
  if($bn > 20 && $bn <= 30){
   $rows["row2"][]= "<td>" . $bingoNumbers["numbers"][array_rand($bingoNumbers["numbers"])] ."</td>";
  }
  if($bn > 30 && $bn <= 40){
   $rows["row3"][]= "<td>" . $bingoNumbers["numbers"][array_rand($bingoNumbers["numbers"])] ."</td>";
  }
  if($bn > 40 && $bn <= 50){
   $rows["row4"][]= "<td>" . $bingoNumbers["numbers"][array_rand($bingoNumbers["numbers"])] ."</td>";
  } 
  if($bn > 50 && $bn <= 60){
   $rows["row5"][]= "<td>" . $bingoNumbers["numbers"][array_rand($bingoNumbers["numbers"])] ."</td>";
  } 
  if($bn > 60 && $bn <= 70){
   $rows["row6"][]= "<td>" . $bingoNumbers["numbers"][array_rand($bingoNumbers["numbers"])] ."</td>";
  }   
}

然后需要遍历rows数组,并遍历其内容以回显行。

一样……

  echo "<table>";
  foreach($rows as $row){
     echo "<tr>";
     foreach($row as $r){
        echo $r;
     }
     echo "</tr>";
  }
  echo "</table>";

希望有帮助:)下面是你完成的代码的PHP SANDBOX