1. Hàm array() trong PHP

Hàm array() trong PHP dùng để khai báo ra một mảng. Mỗi giá trị có trong mảng gọi là phần tử của mảng. Các phần tử trong mảng thông qua tên biến và ký hiệu index của nó. Trong đó index là chỉ số của phần tử. Chỉ số này có thể là một số nguyên, một chuỗi,… tùy thuộc vào loại mảng mà ta khai báo ở phía sau.

Trong PHP có 3 loại mảng:

  • Mảng được thiết lập với chỉ mục : các values được lưu trữ và truy cập theo thứ tự bắt đầu từ số 0
  • Mảng liên kết : các values của phần tử được kết hợp và lưu trữ với giá trị key thay vì theo thứ tự
  • Mảng đa chiều : mảng chứa một hoặc nhiều mảng và values được truy cập bằng nhiều chỉ số

2. Cú pháp hàm array() trong PHP

Vì có những loại mảng khác nhau trong PHP nên cũng có những cú pháp khác nhau với hàm array() .

  • Cú pháp cho mảng được lập chỉ mục

$ten_mang = array(giatri1,giatri2,giatri3,...);

  • Cú pháp cho mảng kết hợp

$ten_mang = array(key1=>value1,key2=>value2,key3=>value3,...)

Trong đó:

  • $ten_mang : là tên của mảng đó
  • giatri1 , giatri2 , giatri3 : là các giá trị được gán cho phần tử của mảng
  • key : là giá trị được gán cho phần tử mảng
  • value : giá trị được gán cho phần tử mảng

Nhưng với sự nâng cấp của mình, từ PHP 5.4 trở đi ta có thể khai báo mảng chỉ với dấu ngoặc vuông [] . Ta chỉ cần khai báo phần tử trong dấu ngoặc vuông thì PHP sẽ tự hiểu ta đang khai báo một mảng.

Ví dụ:

  • Khai báo mảng với array()
<?php
$laptrinhtudau = array("HTML", "CSS", "JS", "PHP");
var_dump($laptrinhtudau);
?>
  • Khai báo mảng với cú pháp ngắn gọn hơn
<?php
$laptrinhtudau = ["HTML", "CSS", "JS", "PHP"];
var_dump($laptrinhtudau);
?>

Kết quả

array(4) { [0]=> string(4) "HTML" [1]=> string(3) "CSS" [2]=> string(2) "JS" [3]=> string(3) "PHP" }

Riêng với mảng đa chiều là một loại mảng khá phức tạp. Có thể là mảng 2 chiều, mảng 3 chiều, mảng 4 chiều,… Nó rất tiện dụng và mạnh mẽ nhưng bù lại với những mảng tư 3 chiều trở lên rất khó để quản lý và cũng khá phức tạp. Vì vậy các bạn cũng đừng quá lạm dụng nó nhé.

Ví dụ:

<?php
$laptrinhtudau = array(
    array("HTML","1 tháng", "dễ học"),
    array("CSS","2 tuần", "bình thường"),
    array("JS","2 tháng", "hơi khó học"),
    array("PHP","3 tháng", "nâng cao")
);
echo "<pre>";
var_dump($laptrinhtudau); //in ra cấu trúc của mảng
?>

Kết quả

array(4) {
  [0]=>
  array(3) {
    [0]=>
    string(4) "HTML"
    [1]=>
    string(8) "1 tháng"
    [2]=>
    string(10) "dễ học"
  }
  [1]=>
  array(3) {
    [0]=>
    string(3) "CSS"
    [1]=>
    string(8) "2 tuần"
    [2]=>
    string(15) "bình thường"
  }
  [2]=>
  array(3) {
    [0]=>
    string(2) "JS"
    [1]=>
    string(8) "2 tháng"
    [2]=>
    string(15) "hơi khó học"
  }
  [3]=>
  array(3) {
    [0]=>
    string(3) "PHP"
    [1]=>
    string(8) "3 tháng"
    [2]=>
    string(9) "nâng cao"
  }
}

Số chiều của mảng tương ứng với cặp [] để chọn phần tử mảng. Kích thước của một mảng cho ta biết số lượng chỉ mục cần chọn một phần tử. Ví dụ như:

  • Mảng hai chiều, bạn cần hai chỉ mục để chọn một phần tử
  • Mảng ba chiều, bạn cần ba chỉ mục để chọn một phần tử

3. Ví dụ về hàm array() trong PHP

Ví dụ 1: Tạo một mảng liên kết và in ra một phần tử của mảng

<?php
$laptrinh = array("Python"=>"4","PHP"=>"3","Java"=>"2");
echo "Tôi đã học Python " . $laptrinh['Python'] . " tháng tại laptrinhtudau.com";
?>

Kết quả

Tôi đã học Python 4 tháng tại laptrinhtudau.com

Ví dụ 2: lặp lại và in tất cả các giá trị của mảng chỉ mục

<?php
$laptrinh = array("Python","PHP","Java");
$arrlength = count($laptrinh);

for($x=0;$x<$arrlength;$x++)
  {
  echo $laptrinh[$x];
  echo "<br>";
  }
?>

Kết quả

Python
PHP
Java

Ví dụ 3: lặp lại và in ra tất cả giá trị của mảng liên kết

<?php
$laptrinh = array("Python"=>"4","PHP"=>"3","Java"=>"2");

foreach($laptrinh as $x=>$x_value)
  {
  echo "Key=" . $x . ", Value=" . $x_value;
  echo "<br>";
  }
?>

Kết quả

Key=Python, Value=4
Key=PHP, Value=3
Key=Java, Value=2

Ví dụ 4: lặp lại và in ra giá trị của mảng đa chiều

<?php
$laptrinhtudau = array(
    array("HTML","1 tháng", "dễ học"),
    array("CSS","2 tuần", "bình thường"),
    array("JS","2 tháng", "hơi khó học"),
    array("PHP","3 tháng", "nâng cao")
);
$length = count($laptrinhtudau); // Lấy chiều dài mảng
for($row = 0; $row < $length; $row++) {
    $length_sub = count($laptrinhtudau[0]); // Lấy chiều dài mảng con
    for($col = 0; $col < $length_sub; $col++) {
        echo $laptrinhtudau[$row][$col]." ";
    }
    echo "<br>";
}
?>

Kết quả

HTML 1 tháng dễ học
CSS 2 tuần bình thường
JS 2 tháng hơi khó học
PHP 3 tháng nâng cao

Trong các ví dụ trên để in ra được giá trị trong mảng thì mình đã sử dụng vòng lặp. Việc sử dụng vòng lặp nào thì là tùy các bạn nhé. Ở đây mình dùng for và tạo ra một biến sử dụng với hàm count() để lấy chiều dài mảng. Tuy nhiên với mảng đa chiều sẽ phức tạp hơn một chút. Với mảng có bao nhiêu chiều thì ta phải lồng bấy nhiêu vòng lặp để có thể lặp và in ra được giá trị của mảng này.