Một mảng (array) trong PHP là một biến đặc biệt, có thể chứa nhiều hơn một giá trị tại một thời điểm.
Nội dung chính
Tạo một mảng trong PHP
Trong PHP, hàm array() được sử dụng để tạo một mảng:
array();
Các loại mảng trong PHP
Có 3 loại mảng trong PHP.
- Mảng được lập chỉ mục.
- Mảng liên kết.
- Mảng đa chiều.
Mảng được lập chỉ mục trong PHP
Chỉ mục trong PHP được biểu thị bằng số bắt đầu từ 0. Chúng ta có thể lưu trữ số, chuỗi và đối tượng trong mảng PHP. Tất cả các phần tử mảng PHP được gán cho một số chỉ mục theo mặc định.
Có hai cách để định nghĩa mảng được lập chỉ mục:
1. Chỉ mục có thể được chỉ định tự động (chỉ mục luôn bắt đầu ở 0)
$season = array("summer","winter","spring","autumn");
2. Chỉ mục có thể được gán theo cách thủ công
$season[0]="summer"; $season[1]="winter"; $season[2]="spring"; $season[3]="autumn";
Để duyệt các phần tử của mảng được lập chỉ mục trong PHP, bạn có thể sử dụng vòng lặp for, như sau:
Ví dụ 1: array1.php
<?php $season=array("summer","winter","spring","autumn"); // tính độ dài của mảng $arrlength = count($season); // hiển thị các phần tử của mảng for($i = 0; $i < $arrlength; $i++) { echo $season[$i]; echo "<br>"; } ?>
Kết quả:
summer winter spring autumn
Ví dụ 2: array2.php
<?php $season[0]="summer"; $season[1]="winter"; $season[2]="spring"; $season[3]="autumn"; // tính độ dài của mảng $arrLength = count($season); // hiển thị các phần tử của mảng for($i = 0; $i < $arrLength; $i++) { echo $season[$i]; echo "<br>"; } ?>
Kết quả:
summer winter spring autumn
Mảng liên kết trong PHP
Mảng liên kết là các mảng sử dụng các khóa được đặt tên mà bạn gán cho chúng.
Có hai cách để tạo một mảng liên kết trong PHP:
$dbInfo = array("url"=>"jdbc:mysql://localhost:3306", "dbName"=>"testdb", "username"=>"root", "password"=>"123123123");
hoặc là:
$dbInfo ['url'] = "jdbc:mysql://localhost:3306"; $dbInfo ['dbName'] = "testdb"; $dbInfo ['username'] = "root"; $dbInfo ['password'] = "123123123";
Để duyệt các phần tử của mảng liên kết trong PHP, bạn có thể sử dụng vòng lặp foreach, như sau:
Ví dụ 1: array3.php
<?php $dbInfo = array("url"=>"jdbc:mysql://localhost:3306", "dbName"=>"testdb", "username"=>"root", "password"=>"123123123"); foreach($dbInfo as $x => $x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; } ?>
Kết quả:
Key = url, Value = jdbc:mysql://localhost:3306 Key = dbName, Value = testdb Key = username, Value = root Key = password, Value = 123123123
Ví dụ 2: array4.php
<?php $dbInfo ['url'] = "jdbc:mysql://localhost:3306"; $dbInfo ['dbName'] = "testdb"; $dbInfo ['username'] = "root"; $dbInfo ['password'] = "123123123"; foreach($dbInfo as $x => $x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; } ?>
Kết quả:
Key = url, Value = jdbc:mysql://localhost:3306 Key = dbName, Value = testdb Key = username, Value = root Key = password, Value = 123123123
Mảng đa chiều trong PHP
Mảng đa chiều là một mảng chứa một hoặc nhiều mảng.
Bạn có thể sử dụng các mảng PHP đa chiều có độ sâu hai, ba, bốn, năm, hoặc nhiều hơn. Tuy nhiên, các mảng nhiều hơn ba cấp độ rất khó quản lý.
Kích thước của một mảng cho biết số lượng chỉ mục bạn cần chọn một phần tử.
- Đối với mảng hai chiều, bạn cần hai chỉ mục để chọn một phần tử.
- Đối với mảng ba chiều, bạn cần ba chỉ mục để chọn một phần tử.
Mảng 2 chiều trong PHP
Mảng hai chiều là một mảng các mảng (mảng ba chiều là mảng mảng mảng).
Ta có bảng sau:
Tên | Kho | Đã bán |
---|---|---|
Iphone X | 22 | 18 |
Sony Z10 | 15 | 13 |
Samsung Note 10 | 5 | 2 |
Xiaomi 6 | 17 | 15 |
Chúng ta có thể lưu trữ dữ liệu của bảng trên vào mảng 2 chiều như sau:
$hang_hoa = array ( array("Iphone X",22,18), array("Sony Z10",15,13), array("Samsung Note 10",5,2), array("Xiaomi 6",17,15) );
Bây giờ mảng hai chiều $hang_hoa chứa bốn mảng, và nó có hai chỉ số: hàng và cột.
Để truy cập vào các phần tử của mảng $hang_hoa , chúng ta phải trỏ đến hai chỉ mục (hàng và cột):
Chúng ta cũng có thể đặt một vòng lặp for bên trong một vòng lặp for khác để lấy các phần tử của mảng $hang_hoa.
Ví dụ: file mang-2-chieu.php
<?php $hang_hoa = array ( array("Iphone X",22,18), array("Sony Z10",15,13), array("Samsung Note 10",5,2), array("Xiaomi 6",17,15) ); for ($row = 0; $row < 4; $row++) { echo "<p><b>Row number $row</b></p>"; echo "<ul>"; for ($col = 0; $col < 3; $col++) { echo "<li>".$hang_hoa[$row][$col]."</li>"; } echo "</ul>"; } ?>
Kết quả: