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 二維陣列的基本概念和常用操作。
延伸閱讀