Đị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>";
}
?>
HTML
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];
?>
HTML

Ứ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>";
}
?>
HTML học 1 tuần
CSS học 2 tuần
JS học 5 tuần
PHP học 3 tuần

$key$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"];
?>
1 tuần

Ứ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>";
}
?>
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

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];
?>
HTML 1 tuần dễ học

[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.