PHP 8 二維陣列

PHP 8 的二維陣列是一種可以儲存陣列的陣列,這意味著每個元素本身又是一個陣列。這種結構常用來表示表格數據或其他需要多層次結構的資料。以下是 PHP 8 二維陣列的詳細介紹:

二維陣列的定義

在 PHP 中,二維陣列可以使用多重方括號 [][] 來定義。

使用方括號定義

$matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];

使用 array() 函數定義

$matrix = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9)
);

存取二維陣列元素

二維陣列中的每個元素都是一個一維陣列,可以使用雙重索引來存取元素。

存取元素

echo $matrix[0][1]; // 輸出 2(第一行第二列的元素)

修改元素

$matrix[1][2] = 10; // 將第二行第三列的元素改為 10

添加新元素

$matrix[2][] = 11; // 在第三行添加一個新元素 11

刪除元素

unset($matrix[0][2]); // 刪除第一行第三列的元素

關聯二維陣列

二維陣列也可以是關聯陣列,這樣每一行可以有不同的鍵值。

定義關聯二維陣列

$students = [
    [
        "name" => "John",
        "age" => 20,
        "grade" => "A"
    ],
    [
        "name" => "Jane",
        "age" => 21,
        "grade" => "B"
    ],
    [
        "name" => "Doe",
        "age" => 22,
        "grade" => "C"
    ]
];

存取關聯二維陣列元素

echo $students[1]["name"]; // 輸出 Jane(第二個學生的名字)

常用的二維陣列操作

迭代二維陣列

可以使用雙重 foreach 迴圈來迭代二維陣列的所有元素。

foreach ($matrix as $row) {
    foreach ($row as $element) {
        echo $element . " "; // 依次輸出每個元素
    }
    echo "\n"; // 換行
}

迭代關聯二維陣列

foreach ($students as $student) {
    foreach ($student as $key => $value) {
        echo "$key: $value\n"; // 依次輸出每個學生的資料
    }
    echo "\n"; // 換行
}

常用的陣列函數應用於二維陣列

計算元素數量

計算二維陣列的行數和列數:

$rowCount = count($matrix);
$columnCount = count($matrix[0]); // 假設所有行都有相同數量的列
echo "Rows: $rowCount, Columns: $columnCount"; // 輸出 Rows: 3, Columns: 3

檢查元素是否存在

if (isset($students[1]["grade"])) {
    echo "Grade: " . $students[1]["grade"]; // 檢查第二個學生的成績是否存在並輸出
}

二維陣列應用範例

表格資料

$table = [
    ["ID", "Name", "Age"],
    [1, "Alice", 23],
    [2, "Bob", 34],
    [3, "Charlie", 28]
];
foreach ($table as $row) {
    foreach ($row as $cell) {
        echo $cell . "\t"; // 用 tab 分隔每個單元格
    }
    echo "\n"; // 每行結束後換行
}

這些是 PHP 8 二維陣列的基本概念和常用操作。

延伸閱讀

© Copyright wibibi.com 網頁設計教學百科 基礎的網頁設計規劃、資料庫與程式設計 Since 2012