Định nghĩa và cách dùng PHP array
- Array là kiểu dữ liệu lưu trữ nhiều giá trị trong một biến duy nhất.
- Rất tiện dụng trong việc lưu trữ nhiều dữ liệu cho một đối tượng.
- Có thể liên kết dễ dàng đến từng giá trị dữ liệu chỉ với một số chỉ mục trong array.
- Trong PHP, array có 3 dạng:
Array với chỉ mục
Array chỉ mục là ứng với một chỉ mục sẽ cho một giá trị tương ứng.
Có 2 cách tạo array chỉ mục:
Array index trực tiếp
<?php $hocweb = array("HTML", "CSS", "JS", "PHP"); ?>
Array index, chỉ mục được gán bằng tay
<?php $hocweb[0] = "HTML"; $hocweb[1] = "CSS"; $hocweb[2] = "JS"; $hocweb[3] = "PHP"; ?>
Cách gọi giá trị array chỉ mục
<?php
$hocweb = array("HTML", "CSS", "JS", "PHP");
$length = count($hocweb); // Lấy chiều dài mảng
for($i = 0; $i < $length; $i++) {
echo $hocweb[$i]."<br>";
}
?>
CSS
JS
PHP
Các giá trị lần được được hiển thị: $hocweb[0]
, $hocweb[1]
, $hocweb[2]
, $hocweb[3]
.
Chú ý là phần tử đầu tiên của mãng là chỉ mục [0].
Cách gọi giá trị đơn
<?php $hocweb = array("HTML", "CSS", "JS", "PHP"); echo $hocweb[0]; ?>
Ứng với một chỉ mục sẽ cho ta một giá trị tương ứng.
Array kết hợp
Array kết hợp là array với các key được đặt tên, và giá trị được gán cho key đó.
Có 2 cách tạo array kết hợp.
Array Associative, tạo trực tiếp:
<?php $hocweb = array("HTML"=>"1 tuần", "CSS"=>"2 tuần", "JS"=>"5 tuần", "PHP"=>"3 tuần"); ?>
Array Associative, dạng kết hợp được gán bằng tay:
<?php $hocweb["HTML"] = "1 tuần"; $hocweb["CSS"] = "2 tuần"; $hocweb["JS"] = "5 tuần"; $hocweb["PHP"] = "3 tuần"; ?>
Cách gọi giá trị array kết hợp
<?php $hocweb = array("HTML"=>"1 tuần", "CSS"=>"2 tuần", "JS"=>"5 tuần", "PHP"=>"3 tuần"); foreach($hocweb as $key=>$value) { echo $key." học ".$value."<br>"; } ?>
CSS học 2 tuần
JS học 5 tuần
PHP học 3 tuần
$key
và $value
chỉ là biến nên có thể dùng bất kỳ tên gì cũng được.
Với cách dùng này thì không cần quan tâm tới chiều dài của mảng.
Cách gọi giá trị đơn
<?php $hocweb = array("HTML"=>"1 tuần", "CSS"=>"2 tuần", "JS"=>"5 tuần", "PHP"=>"3 tuần"); echo $hocweb["HTML"]; ?>
Ứng với một key sẽ cho ta một giá trị tương ứng.
Array đa chiều
Trong array có chứa nhiều array con.
Cách tạo array đa chiều:
Đây là cách tạo array dạng 2 chiều, có thể hình dung như sau:
Học gì | Bao lâu | Độ khó |
---|---|---|
HTML | 1 tuần | dễ học |
CSS | 2 tuần | dễ học |
JS | 5 tuần | hơi khó học |
PHP | 3 tuần | siêng thì được |
<?php $hocweb = array( array("HTML","1 tuần", "dễ học"), array("CSS","2 tuần", "dễ học"), array("JS","5 tuần", "hơi khó học"), array("PHP","3 tuần", "siêng thì được") ); ?>
Cách gọi giá trị array đa chiều:
<?php $hocweb = array( array("HTML","1 tuần", "dễ học"), array("CSS","2 tuần", "dễ học"), array("JS","5 tuần", "hơi khó học"), array("PHP","3 tuần", "siêng thì được") ); $length = count($hocweb); // Lấy chiều dài mảng for($row = 0; $row < $length; $row++) { $length_sub = count($hocweb[0]); // Lấy chiều dài mảng con for($col = 0; $col < $length_sub; $col++) { echo $hocweb[$row][$col]." "; } echo "<br>"; } ?>
CSS 2 tuần dễ học
JS 5 tuần hơi khó học
PHP 3 tuần siêng thì được
Với mảng bao nhiêu chiều thì ta dùng bấy nhiêu vòng lặp.
Nếu mảng con có cùng phần tử thì chiều dài mảng con bất kỳ chính là chiều dài các mảng con còn lại.
Trường hợp nếu mảng con có số các phần tử khác nhau, thì tất nhiên sẽ sử dụng vòng lặp sẽ khác nhau.
Cách gọi giá trị đơn
<?php $hocweb = array( array("HTML","1 tuần", "dễ học"), array("CSS","2 tuần", "dễ học"), array("JS","5 tuần", "hơi khó học"), array("PHP","3 tuần", "siêng thì được") ); echo $hocweb[0][0]." ".$hocweb[0][1]." ".$hocweb[0][2]; ?>
[0][0]
ứng với giá trị hàng đầu tiên cột đầu tiên.
[0][1]
ứng với giá trị hàng đầu tiên cột thứ hai.
[0][2]
ứng với giá trị hàng đầu tiên cột thứ ba.