綜合練習

九九乘法表:陣列產生與輸出

實作資料預處理邏輯,將運算結果封裝於陣列中以便後續調用。

利用程式產生陣列

  • 以迴圈的方式產生一個九九乘法表
  • 將九九乘法表的每個項目以字串型式存入陣列中
  • 使用偵錯工具觀察資料結構
<?php
// 建立空陣列
$nine = [];

for ($i = 1; $i <= 9; $i++) {
    for ($j = 1; $j <= 9; $j++) {
        // 使用花括號變數解析
        $nine[] = "{$i}x{$j}=" . ($i * $j);
    }
}

// 使用 pre 標籤配合 print_r 觀察陣列結構
echo "<pre>";
print_r($nine);
echo "</pre>";
?>
Array
(
    [0] => 1x1=1
    [1] => 1x2=2
    [2] => 1x3=3
    [3] => 1x4=4
    [4] => 1x5=5
    [5] => 1x6=6
    [6] => 1x7=7
    [7] => 1x8=8
    [8] => 1x9=9
    [9] => 2x1=2
    ...
    [80] => 9x9=81
)
                

學習重點

  • 變數解析:{$i} 可以讓變數在字串中清晰定位,避免與後續字元混淆。
  • 記憶體共享:在同一個 PHP 檔案中,不論開多少次標籤,變數記憶體都是共享的。
  • 陣列封裝:將運算結果存入陣列,是實現「資料與顯示分離」的第一步。

表格視覺化顯示

運用 foreach 拆解陣列內容,並配合 % 取餘數邏輯進行 HTML 表格換行。

<?php
echo "<table><tr>";
foreach ($nine as $idx => $item) {
    // 判斷是否需要換行:索引大於 0 且為 9 的倍數
    if ($idx > 0 && $idx % 9 == 0) {
        echo "</tr><tr>";
    }
    echo "<td>$item</td>";
}
echo "</tr></table>";
?>
1x1=1 1x2=2 1x3=3 1x4=4 1x5=5 1x6=6 1x7=7 1x8=8 1x9=9
2x1=2 2x2=4 2x3=6 2x4=8 2x5=10 2x6=12 2x7=14 2x8=16 2x9=18
... ... ... ... ... ... ... ... ...
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81

學習重點

  • foreach 結構:$idx 代表索引(0-80),$item 代表內容(如 "1x1=1")。
  • 換行邏輯:利用 $idx % 9 == 0 來判斷每一列的結束點,這是網頁排版中非常實用的技巧。
  • 邏輯與視圖:實現了「一次計算、多處使用」的資料共享邏輯。
  • 妳的換行實作:
    if ($idx > 0 && $idx % 9 == 0) {
        echo "</tr><tr>"; // 滿足 9 的倍數時,先關閉舊列並開啟新列
    }