Hướng dẫn array program in php - chương trình mảng trong php

1. Mảng là gì? Mảng trong PHP là gì?

Mảng (Array) trong PHP là một biến sử dụng để lưu trữ các giá trị, dữ liệu liên quan.  là một biến sử dụng để lưu trữ các giá trị, dữ liệu liên quan. 

Bạn cứ tưởng tưởng một mảng như một hộp sôcôla với các khe bên trong.

Hộp đại diện cho chính mảng trong khi sôcôla đại diện cho các giá trị được lưu trữ trong mảng.

Hình dưới đây minh hoạ một mảng:

Hướng dẫn array program in php - chương trình mảng trong php

Minh họa về một mảng dữ liệu

2. Mảng chỉ số (Numeric Array) trong PHP

Mảng chỉ số (Numeric Array) sử dụng chỉ số (index) làm khóa truy cập (Access key). sử dụng chỉ số (index) làm khóa truy cập (Access key)

Access Key là tham chiếu đến khe cắm bộ nhớ trong biến mảng. là tham chiếu đến khe cắm bộ nhớ trong biến mảng.

Access Key được sử dụng bất cứ khi nào chúng ta muốn đọc hoặc gán giá trị mới cho một phần tử mảng.

Dưới đây là cú pháp để tạo mảng chỉ số trong PHP:

// Cú pháp tạo mảng chỉ số

$ten_mang = array(giaTri1, giaTri2, ...);   = array(giaTri1, giaTri2, ...);
 

Ví dụ: Tạo một mảng số nguyên

$mang_so_nguyen = array(1, 2, 3, 4, 5, 6);   = array(123456);
 

Hoặc bạn có thể sử dụng cách này:

// Gán giá trị cho vị trí (index)

// PHP Engine sẽ tự động tạo một mảng

$ten_mang[index] = giaTri;  [index] = giaTri;
 

Ví dụ:


Hoặc chúng ta có cách tạo:

// Tạo mảng với key là số nguyên

$ten_mang = array(n => giaTri, ...);   = array(n => giaTri, ...);
 


Giải thích các thành phần trong mảng:

  • $ten_mang: là tên của biến mảng: là tên của biến mảng
  • n: là số chỉ mục (index) truy cập của phần tử (số nguyên) là số chỉ mục (index) truy cập của phần tử (số nguyên)
  • giaTri: là giá trị được gán cho phần tử mảng (ở vị trí index). là giá trị được gán cho phần tử mảng (ở vị trí index).

Bây giờ hãy xem một ví dụ về một mảng số:

  • Giả sử chúng ta có 5 bộ phim mà chúng ta muốn lưu trữ trong các biến mảng.
  • Chúng ta có thể sử dụng ví dụ hiển thị như bên dưới để làm điều đó.

// Gán giá trị cho từng vị trí trong mảng

$phim[0] = 'One Piece';[0] = 'One Piece';

$phim[1] = 'Dragon Ball'; [1] = 'Dragon Ball';

$phim[2] = 'Doremon';[2] = 'Doremon';

$phim[3] = 'One-Punch Man';[3] = 'One-Punch Man';

$phim[4] = 'Naruto';  [4] = 'Naruto';
 


Các số 0, 1, 2, 3, 4 đó chính là vị trí (index) lưu trữ của các giá trị.0, 1, 2, 3, 4 đó chính là vị trí (index) lưu trữ của các giá trị.

Mỗi bộ phim được cung cấp một số chỉ mục được sử dụng để truy xuất hoặc sửa đổi giá trị của nó.

Hãy xem đoạn code sau:

$phim[1]="Dragon Ball";[1]="Dragon Ball";

$phim[2]="Doremon";[2]="Doremon";

$phim[3]="One-Punch Man";[3]="One-Punch Man";

$phim[4]="Naruto";[4]="Naruto";

echo $phim[3]; $phim[3];

$phim[3] = "Fairy Tail";[3] = "Fairy Tail";

echo "";  "";

echo $phim[3];   $phim[3];
 


Kết quả của ví dụ trên ta nhận được như sau:


Như bạn có thể thấy từ các ví dụ trên:

Thay vì mỗi một bộ phim chúng ta khai báo 1 biến gây tốn bộ nhớ. Chúng ta chỉ việc sử dụng mảng.mảng.

Lúc này, làm việc với các giá trị có cùng bản chất lúc này trở nên dễ dàng và linh hoạt hơn nhiều.

Ngoài ra, các biến mảng trên cũng có thể được tạo bằng đoạn code sau.

$phims = array(0 => "One Piece", = array(0 => "One Piece",

1 => "Dragon Ball", => "Dragon Ball",

2 => "Doremon", => "Doremon",

3 => "One-Punch Man", => "One-Punch Man",

4 => "Naruto" ); => "Naruto" );

echo $phims[4];   $phims[4];
 


Kết quả ta nhận được như sau:


3. Mảng kết hợp (Associative Array) trong PHP

Mảng kết hợp khác với mảng chỉ số theo nghĩa là mảng kết hợp sử dụng Tên mô tả (key) cho các Access Key. khác với mảng chỉ số theo nghĩa là mảng kết hợp sử dụng Tên mô tả (key) cho các Access Key.

Dưới đây là cú pháp để tạo mảng kết hợp trong php:

// Cú pháp này PHP engine tự động tạo 1 mảng $ten_mang

// rồi gán cho nó một cặp key => value

$ten_mang["key"] = value;["key"] = value;

// Cách 2

$ten_mang = array('key' => value);   = array('key' => value);
 


Giải thích các phần tử trong cú pháp trên:

  • $ten_mang là tên của biến mảng
  • ["key"] là tên của định danh của phần tử sẽ được sử dụng để truy cập phần tử sau này (access key hoặc là key)
  • value là giá trị được gán cho phần tử mảng.

Chúng ta hãy giả sử rằng chúng ta có một nhóm người và chúng ta muốn phân định giới tính của mỗi người theo tên của họ.

Chúng ta có thể sử dụng một mảng kết hợp.

Đoạn code dưới đây giúp chúng ta làm điều đó:

$sinhVien = array("Hải" => "Nam", "Doanh" => "Nam", "Nhung" => "Nữ");  = array("Hải" => "Nam""Doanh" => "Nam""Nhung" => "Nữ");

print_r($sinhVien);  ($sinhVien);
 


Bạn có thể thấy, thay vì đánh chỉ số từ 0, 1, 2, 3 thì chúng ta sử dụng n0 là:

  • Hải
  • Doanh
  • Nhung

Kết quả chúng ta nhận được ở ví dụ trên là:


Và khi thực hiện câu lệnh: n1 thì chúng ta nhận được kết quả:

$sinhVien = array("Hải" => "Nam", "Doanh" => "Nam", "Nhung" => "Nữ");  = array("Hải" => "Nam""Doanh" => "Nam""Nhung" => "Nữ");

print_r($sinhVien);   "Hải là " . $sinhVien["Hải"];

Bạn có thể thấy, thay vì đánh chỉ số từ 0, 1, 2, 3 thì chúng ta sử dụng n0 là:
 


Mảng kết hợp này rất hữu ích khi bạn lấy dữ liệu từ cơ sở dữ liệu.

Bởi vì tên trường thường không đánh theo chỉ số 1, 2, 3, 4 mà được đánh theo ID (Ví dụ: SV001, SV003, SP001....)

4. Mảng đa chiều trong PHP

Mảng đa chiều là các mảng có chứa các mảng lồng nhau khác.  là các mảng có chứa các mảng lồng nhau khác. 

Ưu điểm của mảng đa chiều là chúng cho phép chúng ta nhóm các dữ liệu liên quan lại với nhau trong khi vẫn chia tách được rõ ràng các nhóm nhỏ hơn.

Hãy xem xét một ví dụ thực tế triển khai mảng đa chiều trong php.

Bảng dưới đây cho thấy một danh sách các bộ phim theo thể loại phim:

// Khai báo mảng đa chiều

$phims =array( =array(

"Hành động" => array("Jonh Wick", "Người vận chuyển", "Nhiệm vụ bất khả thi"), => array("Jonh Wick""Người vận chuyển""Nhiệm vụ bất khả thi"),

"Viễn tưởng" => array("Endgame", "Infinity War"), => array("Endgame""Infinity War"),

"Lãng mạn" => array("La La land"),  => array("La La land"),

"Kịch tính" => array("Tên trộm và cô chủ nhà") => array("Tên trộm và cô chủ nhà")

);

// In ra cấu trúc mảng

print_r($phims);  ($phims);
 


Bạn có thể thấy các thể loại phim:

  • Hành động
  • Viễn tưởng
  • Lãng mạn
  • Kịch tính

Mà trong mỗi thể loại phim ta lại có từ 1 đến 2 bộ phim khác nhau.

Kết quả chúng ta nhận được sẽ là:

Một cách khác để khai báo cùng một mảng đa chiều là như sau:

"Hành động" => array(0 => "Jonh Wick", 1 => "Người vận chuyển", 2 => "Nhiệm vụ bất khả thi"),  => array(0 => "Jonh Wick"1 => "Người vận chuyển"2 => "Nhiệm vụ bất khả thi"),

"Viễn tưởng" => array(0 => "Endgame", 1 => "Infinity War"), => array(0 => "Endgame"1 => "Infinity War"),

"Lãng mạn" => array (0 => "La La Land"), => array (0 => "La La Land"),

"Kịch tính" => array(0 => "Tên trộm và cô chủ nhà")  => array(0 => "Tên trộm và cô chủ nhà")

);

// In ra cấu trúc mảng

print_r($phims);   $phims["Hành động"][0];
 


Bạn có thể thấy các thể loại phim:

Hành động

Viễn tưởng

Lãng mạn

Kịch tính

$y = array('value' => 10); = array('value' => 10);

Mà trong mỗi thể loại phim ta lại có từ 1 đến 2 bộ phim khác nhau. = $x + $y;
 


Kết quả chúng ta nhận được sẽ là:cộng hai mảng ta nhận được một mảng mới như sau:

Một cách khác để khai báo cùng một mảng đa chiều là như sau:

"Hành động" => array(0 => "Jonh Wick", 1 => "Người vận chuyển", 2 => "Nhiệm vụ bất khả thi"),

$y = array("id" => "1"); = array("id" => "1");

if($x == $y) {($x == $y) {

echo "true"; "true";

"Viễn tưởng" => array(0 => "Endgame", 1 => "Infinity War"),else {

echo "false"; "false";

"Lãng mạn" => array (0 => "La La Land"),

"Kịch tính" => array(0 => "Tên trộm và cô chủ nhà")
 


// Truy cập phần tử mảng đa chiều

echo $phims["Hành động"][0];  giá trịkiểu dữ liệu trong 2 mảng được đem ra so sánh:

$y = array("id" => "1"); = array("id" => "1");

if($x === $y) {($x === $y) {

echo "true"; "true";

Lưu ý: Mảng chứa số phim cùng 1 thể loại đã được lồng bên trong mảng kết hợp các thể loạielse {

echo "false"; "false";

"Lãng mạn" => array (0 => "La La Land"),

"Kịch tính" => array(0 => "Tên trộm và cô chủ nhà")
 


// Truy cập phần tử mảng đa chiều

echo $phims["Hành động"][0];  

$y = array("id" => "1"); = array("id" => "1");

if($x != $y) {($x != $y) {

echo "true"; "true";

Lưu ý: Mảng chứa số phim cùng 1 thể loại đã được lồng bên trong mảng kết hợp các thể loạielse {

echo "false"; "false";

"Lãng mạn" => array (0 => "La La Land"),

"Kịch tính" => array(0 => "Tên trộm và cô chủ nhà")
 


// Truy cập phần tử mảng đa chiều

echo $phims["Hành động"][0];  

Lưu ý: Mảng chứa số phim cùng 1 thể loại đã được lồng bên trong mảng kết hợp các thể loại

$y = array('value' => 10); = array('value' => 10);

$x = array("id" => 1); = array("id" => 1);

5. Sử dụng toán tử thao tác với mảng trong PHP = array("id" => "1");

if($x !== $y) {($x !== $y) {

echo "true"; "true";

Lưu ý: Mảng chứa số phim cùng 1 thể loại đã được lồng bên trong mảng kết hợp các thể loạielse {

echo "false"; "false";

5. Sử dụng toán tử thao tác với mảng trong PHP
// Kết quả true hoặc 1
 


Toán tử "+" để cộng 2 mảng trong PHP

Ta sử dụng toán tử "n2" để kết hợp các phần tử từ cả hai mảng:

Ví dụ kết hợp phần tử của 2 mảng như sau:n9, như ví dụ sau:

$z = $x + $y;   = array("Jonh Wick""Người vận chuyển""Nhiệm vụ bất khả thi");

Sau khi cộng hai mảng ta nhận được một mảng mới như sau:

echo count($phims); count($phims);

So sánh 2 mảng có bằng nhau không bằng toán tử "==" trong PHP
 


Toán tử n3 so sánh hai mảng nếu chúng bằng nhau và trả về n4 hoặc n5 nếu đúng:

} else {

}

// Kết quả true hoặc 1  

$phims = array("Jonh Wick", "Người vận chuyển", "Nhiệm vụ bất khả thi");  = array("Jonh Wick""Người vận chuyển""Nhiệm vụ bất khả thi");

// Xuất thông báo xem biến $phims có phải 1 mảng hay không

echo is_array($phims); is_array($phims);

// Kết quả sẽ là 1 (true)  
 


Cách sử dụng Hàm sort trong PHP

  • Hàm này được sử dụng để sắp xếp các mảng theo các giá trị chứa trong mảng.
  • Nếu các giá trị là chữ và số, nó sắp xếp chúng theo thứ tự bảng chữ cái.
  • Nếu các giá trị là số, nó sắp xếp chúng theo thứ tự tăng dần.
  • Nó loại bỏ các khóa truy cập hiện có và thêm các phím số mới.
  • Đầu ra của hàm này là một mảng chỉ số

// Khai báo mảng $sinhVien

$sinhVien = array("Hải" => "Nam", "Doanh" => "Nam", "Nhung" => "Nữ");  = array("Hải" => "Nam""Doanh" => "Nam""Nhung" => "Nữ");

// Sắp xếp các giá trị trong mảng $sinhVien

sort($sinhVien);($sinhVien);

// In ra mảng $sinhVien để kiểm tra

print_r($sinhVien);  ($sinhVien);
 


Kết quả chúng ta nhận được khi sử dụng hàm sort để sắp xếp mảng giaTri1 sẽ là:sử dụng hàm sort để sắp xếp mảng giaTri1 sẽ là:

Bạn có thể thấy, mảng giaTri1 đã bị thay đổi từ mảng kết hợp thành mảng chỉ số.

Vậy nếu bạn chỉ muốn sắp xếp, giữ nguyên kiểu mảng thì sao?

Hãy..

Sử dụng Hàm ksort để sắp xếp mảng trong PHP

Hàm giaTri3 được sử dụng để sắp xếp mảng sử dụng giaTri4.giaTri3 được sử dụng để sắp xếp mảng sử dụng giaTri4.

Ví dụ sau minh họa cách sử dụng của hàm giaTri3:

// Khai báo mảng $sinhVien

$sinhVien = array("Hải" => "Nam", "Doanh" => "Nam", "Nhung" => "Nữ");  = array("Hải" => "Nam""Doanh" => "Nam""Nhung" => "Nữ");

// Sắp xếp các giá trị trong mảng $sinhVien

ksort($sinhVien);($sinhVien);

// In ra mảng $sinhVien để kiểm tra

print_r($sinhVien);  ($sinhVien);
 


Kết quả chúng ta nhận được khi sử dụng hàm sort để sắp xếp mảng giaTri1 sẽ là:

Bạn có thể thấy, mảng giaTri1 đã bị thay đổi từ mảng kết hợp thành mảng chỉ số.

Vậy nếu bạn chỉ muốn sắp xếp, giữ nguyên kiểu mảng thì sao?

Hãy.. được sử dụng để sắp xếp mảng bằng các giá trị.

Sử dụng Hàm ksort để sắp xếp mảng trong PHP

// Khai báo mảng $sinhVien

$sinhVien = array("Hải" => "Nam", "Doanh" => "Nam", "Nhung" => "Nữ");  = array("Hải" => "Nam""Doanh" => "Nam""Nhung" => "Nữ");

// Sắp xếp các giá trị trong mảng $sinhVien

asort($sinhVien);($sinhVien);

// In ra mảng $sinhVien để kiểm tra

print_r($sinhVien);  ($sinhVien);
 


Kết quả chúng ta nhận được khi sử dụng hàm sort để sắp xếp mảng giaTri1 sẽ là:sắp xếp mảng giaTri1:

Bạn có thể thấy, mảng giaTri1 đã bị thay đổi từ mảng kết hợp thành mảng chỉ số.

Vậy nếu bạn chỉ muốn sắp xếp, giữ nguyên kiểu mảng thì sao?

Hãy..nên sử dụng mảng để chứa dữ liệu vì 3 lý do sau đây:

  • Sử dụng Hàm ksort để sắp xếp mảng trong PHP
  • Hàm giaTri3 được sử dụng để sắp xếp mảng sử dụng giaTri4.
  • Ví dụ sau minh họa cách sử dụng của hàm giaTri3:

// Sử dụng hàm ksort để sắp xếp mảng $sinhVien

// In ra mảngcách sử dụng mảng trong PHP này bạn đã được học và hiểu về:

  • Kết quả chúng ta nhận được là:là các biến đặc biệt với khả năng lưu trữ nhiều giá trị.
  • Bạn thấy đấy, mảng giaTri6 sau khi sử dụng hàm giaTri3 để sắp xếp theo giaTri4 và vẫn ở kiểu mảng kết hợp.
  • Sử dụng Hàm asort để sắp xếp mảng trong PHP được sử dụng để đếm số lượng giá trị đã lưu trong mảng.
  • Hàm asort() được sử dụng để sắp xếp mảng bằng các giá trị. được sử dụng để xác định xem một biến có phải là một mảng hợp lệ hay không.
  • Ví dụ sau minh họa cách sử dụng của hàm giaTri9.

// Sử dụng asort để sắp xếp mảng theo value


Kết quả nhận được sau khi sử dụng hàm giaTri9 để sắp xếp mảng giaTri1:KHÓA HỌC LẬP TRÌNH WEB VỚI PHP. Đăng ký ngay để nhận hỗ trợ học phí từ doanh nghiệp!

Cách sử dụng các hàm có sẵn để sắp xếp mảng trong PHP cũng rất đơn giản và dễ hiểu phải không nào?

7. Tại sao nên sử dụng mảng để chứa dữ liệu?

Trong trường hợp cần thiết, chúng ta nên sử dụng mảng để chứa dữ liệu vì 3 lý do sau đây:

Nội dung của Mảng có thể được kéo dài mà vẫn tiết kiệm bộ nhớ

Mảng giúp dễ dàng lưu trữ và thao tác với các thông tin có liên quan đến nhau

Sử dụng mảng giúp viết code sạch hơn.

8. Tổng kết bài học Mảng (Array) trong PHP

Như vậy là qua bài cách sử dụng mảng trong PHP này bạn đã được học và hiểu về: