我试图用PHP编写一个脚本,它会生成一个带有垂直字母表的表格。它将简单地回显从A到Z的字母,然后从Z回到A,当它到达A时,它将再次从A到Z再从Z到A。
到目前为止,我的代码仅从A到Z,然后再从A到Z。
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Vertikální abeceda</title>
</head>
<body>
<form method="post">
<input type="number" placeholder="SLOUPCE" name="sloupce" />
<input type="number" placeholder="ŘÁDKY" name="radky" />
<input type="submit" value="Vytvořit tabulku" /><br><br>
</form>
<?php
if(isset($_POST['radky']) && isset($_POST['sloupce'])) {
$col = $_POST['sloupce'];
$row = $_POST['radky'];
$cislo = 0;
echo ("<table rules='all'>");
for($i = 1; $i<=$row; $i++) {
echo ("<tr>");
for($c = 0; $c<$col; $c++) {
$pismeno_id = 64;
$cislo = $i + ($c*$row);
$pismeno = $cislo + $pismeno_id;
while($pismeno > 90) {
$pismeno = $pismeno - 26;
}
echo ("<td>". "&#" . $pismeno . "</td>");
}
echo ("</tr>");
}
echo ("</table>");
}
?>
</body>
</html>
答案 0 :(得分:1)
我们开始:要向后添加向后字母表,我将$ letter的最大数量更改为115.这是65(A值)+ 26(全字母)+ 24(X - B)。
为了完成向后字母表,我添加了变量$ realletter,它与$ letter保持相同,最高为90.从91到115,它从倒数计算,从90减去高于90的数量。这将是90 - ($ letter - 90),即。对于94 - &gt; 90 - (94 - 90)= 90 - 4 = 86.
<?php
$row = 26;
$col = 26;
echo ("<table rules='all'>");
for($i = 0; $i<=$row; $i++) {
echo ("<tr>");
for($c = 0; $c<$col; $c++) {
$letter_id = 65;
$number = $i + ($c*$row);
$letter = $number + $letter_id;
while($letter > 115) {
$letter = $letter - 50;
}
if($letter > 90){
$realletter = 90 - ($letter-90);
}else{
$realletter = $letter;
}
echo ("<td>". "&#" . $realletter. "</td>");
}
echo ("</tr>");
}
echo ("</table>");
?>
希望有所帮助!