第一种:不要笑,我只是想加强下数组的练习而已(^..^)
<?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>