
第一种:不要笑,我只是想加强下数组的练习而已(^..^)
<?php
/**
* Created by PhpStorm.
* User: navig
* Date: 2017/12/27
* Time: 16:13
*/
header("Content-type:text/html;charset=utf-8");
$rows1=['1x1=1'];
$rows2=['1x2=2','2x2=4'];
$rows3=['1x3=3','2x3=6','3x3=9'];
$rows4=['1x4=4','2x4=8','3x4=12','4x4=16'];
$rows5=['1x5=5','2x5=10','3x5=15','4x5=20','5x5=25'];
$rows6=['1x6=6','2x6=12','3x6=18','4x6=24','5x6=30','6x6=36'];
$rows7=['1x7=7','2x7=14','3x7=21','4x7=28','5x7=35','6x7=42','7x7=49'];
$rows8=['1x8=8','2x8=16','3x8=24','4x8=32','5x8=40','6x8=48','7x8=56','8x8=64'];
$rows9=['1x9=9','2x9=18','3x9=27','4x9=36','5x9=45','6x9=54','7x9=63','8x9=72','9x9=81'];
echo '<table border="1px solid black" style="border-collapse: collapse;text-align: center" align="center">';
echo '<caption>九九乘法表</caption>';
echo '<tr>';
foreach ($rows1 as $value){ //采用foreach(){}
echo '<td>'.$value.'</td>';
};
echo '</tr>';
echo '<tr>';
foreach ($rows2 as $value){
echo '<td>'.$value.'</td>';
}
echo '</tr>';
echo '<tr>';
foreach ($rows3 as $value){
echo '<td>'.$value.'</td>';
}
echo '</tr>';
echo '<tr>';
foreach ($rows4 as $value){
echo '<td>'.$value.'</td>';
}
echo '</tr>';
echo '<tr>';
foreach ($rows5 as $value){
echo '<td>'.$value.'</td>';
}
echo '</tr>';
echo '<tr>';
foreach ($rows6 as $value){
echo '<td>'.$value.'</td>';
}
echo '</tr>';
echo '<tr>';
foreach ($rows7 as $value){
echo '<td>'.$value.'</td>';
}
echo '</tr>';
echo '<tr>';
foreach ($rows8 as $value){
echo '<td>'.$value.'</td>';
}
echo '</tr>';
echo '<tr>';
foreach ($rows9 as $value){
echo '<td>'.$value.'</td>';
}
echo '</tr>';
echo '</table>';
?>foreach
foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。有两种语法:
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。
拓展 (下面例子引用自php.net)
如何利用foreach来修改数组里的元素
通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
unset($value); // 最后取消掉引用
?>foreach函数与list()结合
<?php
$array = [
[1, 2],
[3, 4],
];
foreach ($array as list($a, $b)) {
// $a contains the first element of the nested array,
// and $b contains the second element.
echo "A: $a; B: $b\n";
}
?>输出:
A: 1; B: 2 A: 3; B: 4
note: list() 中的单元可以少于嵌套数组的,此时多出来的数组单元将被忽略:但是如果多于会报错
第二种:升级版
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.result {
text-align: center;
}
</style>
</head>
<body>
<form action="">
<h3 align="center">NN乘法表</h3>
<div align="center">
<label>请输入: <input type="text" name="num" placeholder="请输入数字"></label>
<input type="submit" name="submit" value="提交">
</div>
</form>
<div class="result">
<?php
$Num=isset($_GET['num'])?$_GET['num']:null;
if (is_numeric($Num)){ //防止用户输入的不是数字
echo '<h5>您输入的是:'.$Num.'</h5>';
} else
{
echo '<h5>请输入数字</h5>';
$Num=null; //变量清零
};
$N=$Num; //使用一个新的变量来遍历
echo '<table border="1px solid black" style="border-collapse: collapse;text-align: center">';
echo '<caption>NN乘法表</caption>';
for ($i=1;$i<=$N;$i++){
echo '<tr>'; //主要输出tr
for ($j=1;$j<=$i;$j++){
echo '<td>'.$j.'*'.$i.'='.$i*$j.'</td>'; //输出td里的内容
};
echo '</tr>';
};
echo '</table>';
?>
</div>
</body>
</html>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号