Một mảng chứa một hoặc nhiều mảng là mảng nhiều chiều. Mảng nhiều chiều mỗi phần tử trong mảng chính cũng có thể là mảng. Và mỗi phần tử trong mảng con có thể là một mảng, v.v. Các giá trị trong mảng nhiều chiều được truy cập bằng nhiều chỉ mục
Thí dụ
Để triển khai các mảng nhiều chiều trong PHP, mã như sau−
Bản thử trực tiếp
array [ "physics" => 95, "maths" => 90, ], "ryan" => array [ "physics" => 92, "maths" => 97, ], ]; echo "Marks for kevin in physics : " ; echo $marks['kevin']['physics'] . "
"; echo "Marks for ryan in maths : "; echo $marks['ryan']['maths'] . "
"; ?>
đầu ra
Điều này sẽ tạo ra đầu ra sau−
Marks for kevin in physics : 95 Marks for ryan in maths : 97
Thí dụ
Bây giờ chúng ta hãy xem một ví dụ khác, trong đó chúng ta đang tạo mảng 3 chiều -
Bản thử trực tiếp
đầu ra
Điều này sẽ tạo ra đầu ra sau−
Array [ [0] => Array [ [0] => Array [ [0] => 100 [1] => 150 ] [1] => Array [ [0] => 200 [1] => 250 ] ] [1] => Array [ [0] => Array [ [0] => 300 [1] => 350 ] [1] => Array [ [0] => 400 [1] => 500 ] ] ]
Các phần tử mảng trong PHP có thể chứa các giá trị thuộc bất kỳ loại nào, chẳng hạn như số, chuỗi và đối tượng. Chúng cũng có thể chứa các mảng khác, có nghĩa là bạn có thể tạo các mảng đa chiều hoặc lồng nhau
Trong hướng dẫn này, bạn tìm hiểu cách tạo mảng nhiều chiều, cách truy cập các phần tử trong mảng nhiều chiều và cách lặp qua các mảng nhiều chiều
Cách tạo mảng nhiều chiều
Bạn tạo một mảng nhiều chiều bằng cách sử dụng cấu trúc array[]
, giống như tạo một mảng thông thường. Sự khác biệt là mỗi phần tử trong mảng bạn tạo chính là một mảng
Ví dụ
$myArray = array[
array[ value1, value2, value3 ],
array[ value4, value5, value6 ],
array[ value7, value8, value9 ]
];
Ví dụ trên tạo mảng 2 chiều. Mảng cấp cao nhất chứa 3 phần tử. Bản thân mỗi phần tử là một mảng chứa 3 giá trị
Bạn cũng có thể sử dụng mảng kết hợp trong mảng nhiều chiều. Ví dụ sau tạo một mảng được lập chỉ mục chứa 3 mảng kết hợp
$movies = array[
array[
"title" => "Rear Window",
"director" => "Alfred Hitchcock",
"year" => 1954
],
array[
"title" => "Full Metal Jacket",
"director" => "Stanley Kubrick",
"year" => 1987
],
array[
"title" => "Mean Streets",
"director" => "Martin Scorsese",
"year" => 1973
]
];
Bạn có thể lồng các mảng sâu bao nhiêu cấp độ tùy thích [mặc dù hiếm khi vượt quá 3 cấp độ]. Đây là một mảng 3 chiều
$myArray = array[
array[
array[ value1, value2 ],
array[ value3, value4 ]
],
array[
array[ value5, value6 ],
array[ value7, value8 ]
]
];
Truy cập các phần tử trong mảng nhiều chiều
Để truy cập các phần tử mảng nhiều chiều, bạn có thể sử dụng cùng một cú pháp dấu ngoặc vuông mà bạn sử dụng với các mảng thông thường. Nếu bạn muốn truy cập các phần tử mảng cấp hai trong mảng 2 chiều, chỉ cần sử dụng 2 bộ dấu ngoặc vuông — ví dụ
$myArray = array[
array[ "one", "two", "three" ],
array[ "four", "five", "six" ]
];
// Displays "six"
echo $myArray[1][2];
?>
Dưới đây là một số ví dụ truy cập các phần tử khác nhau trong mảng nhiều chiều $movies
được tạo trước đó
echo "The title of the first movie:
";
echo $movies[0]["title"] . "
";
echo "The director of the third movie:
";
echo $movies[2]["director"] . "
";
echo "The nested array contained in the first element:
";
print_r[ $movies[0] ];
echo "
";
Đoạn mã trên tạo ra đầu ra sau
________số 8_______Ví dụ cuối cùng sử dụng
$movies = array[
array[
"title" => "Rear Window",
"director" => "Alfred Hitchcock",
"year" => 1954
],
array[
"title" => "Full Metal Jacket",
"director" => "Stanley Kubrick",
"year" => 1987
],
array[
"title" => "Mean Streets",
"director" => "Martin Scorsese",
"year" => 1973
]
];
0 để truy cập toàn bộ mảng lồng nhau chứa trong phần tử đầu tiên của mảng cấp cao nhất, sau đó sử dụng
$movies = array[
array[
"title" => "Rear Window",
"director" => "Alfred Hitchcock",
"year" => 1954
],
array[
"title" => "Full Metal Jacket",
"director" => "Stanley Kubrick",
"year" => 1987
],
array[
"title" => "Mean Streets",
"director" => "Martin Scorsese",
"year" => 1973
]
];
1 để hiển thị nội dung của mảng. [Tìm hiểu thêm về
$movies = array[
array[
"title" => "Rear Window",
"director" => "Alfred Hitchcock",
"year" => 1954
],
array[
"title" => "Full Metal Jacket",
"director" => "Stanley Kubrick",
"year" => 1987
],
array[
"title" => "Mean Streets",
"director" => "Martin Scorsese",
"year" => 1973
]
];
1 trong Làm việc với các phần tử mảng trong PHP. ]Lặp qua các mảng nhiều chiều
Cũng giống như các mảng một chiều thông thường, bạn có thể sử dụng
$movies = array[
array[
"title" => "Rear Window",
"director" => "Alfred Hitchcock",
"year" => 1954
],
array[
"title" => "Full Metal Jacket",
"director" => "Stanley Kubrick",
"year" => 1987
],
array[
"title" => "Mean Streets",
"director" => "Martin Scorsese",
"year" => 1973
]
];
3 để lặp qua các mảng nhiều chiều. Để làm điều này, bạn cần tạo các vòng lặp
$movies = array[
array[
"title" => "Rear Window",
"director" => "Alfred Hitchcock",
"year" => 1954
],
array[
"title" => "Full Metal Jacket",
"director" => "Stanley Kubrick",
"year" => 1987
],
array[
"title" => "Mean Streets",
"director" => "Martin Scorsese",
"year" => 1973
]
];
3 lồng nhau — nghĩa là vòng lặp này bên trong vòng lặp khác- Vòng lặp bên ngoài đọc từng phần tử trong mảng cấp cao nhất
- Đối với mỗi phần tử cấp cao nhất đó, vòng lặp bên trong sẽ di chuyển qua mảng chứa trong phần tử cấp cao nhất, v.v.
Đây là một ví dụ tạo mảng thông tin phim 2 chiều, sau đó lặp qua mảng, hiển thị thông tin trong trang
$movies = array[
array[
"title" => "Rear Window",
"director" => "Alfred Hitchcock",
"year" => 1954
],
array[
"title" => "Full Metal Jacket",
"director" => "Stanley Kubrick",
"year" => 1987
],
array[
"title" => "Mean Streets",
"director" => "Martin Scorsese",
"year" => 1973
]
];
foreach [ $movies as $movie ] {
echo '';
foreach [ $movie as $key => $value ] {
echo "$key$value";
}
echo '';
}
Đoạn script trên hiển thị như sau
title Rear Window director Alfred Hitchcock year 1954 title Full Metal Jacket director Stanley Kubrick year 1987 title Mean Streets director Martin Scorsese year 1973
Tóm lược
Trong hướng dẫn này, bạn đã biết cách tạo, thao tác và lặp qua các mảng nhiều chiều trong PHP. Mảng đa chiều rất hữu ích cho mọi thứ, chẳng hạn như lưu trữ nhiều bản ghi cơ sở dữ liệu và lưu trữ dữ liệu để hiển thị trong bảng. Bây giờ bạn đã biết cách sử dụng chúng, bạn có thể thêm một cấp độ tinh vi mới vào tập lệnh PHP của mình