Mảng là gì có mấy loại mảng trong PHP

Khái niệm mảng trong Php

Mảng Array là một loại biến đặc biệt, trong nó giữ nhiều giá trị. Mỗi giá trị trong mảng được gọi là phần tử của mảng, các phần tử trong mảng được truy xuất thông qua tên biến và ký hiệu [index], trong đó index được gọi là chỉ số của phần tử, chỉ số này có thể là một số nguyên hay là một chuỗi ... tùy thuộc vào loại mảng mà bạn khởi tạo ở phần sau.

Khi mảng không có phần tử nào được gọi là mảng rỗng, bạn có thể tạo ra một biến mảng rỗng để sau này thêm các phần tử vào, cú pháp như sau:

$mang1 = array[]; // tạo một mảng rỗng $mang2 = []; // tạo một mảng rỗng - cú pháp này dễ đọc hơn.

Mảng và các hàm xử lý mảng trong PHP

  • Report
  • Add to my series

This post hasn't been updated for 3 years

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.


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:



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

Mảng trong PHP là gì?

Mảng trong PHP hay Array PHP là một kiểu cấu trúc dữ liệu cho phép bạn lưu trữ nhiều phần tử của kiểu dữ liệu tương tự nhau dưới một biến duy nhất.

Nhờ đó, bạn sẽ tiết kiệm được thời gian và công sức, không cần phải tạo ra từng biến cho từng dữ liệu.

Mảng trong PHP là gì?

Các mảng trong PHP cũng giúp tạo ra danh danh các phần tử có kiểu tương tự, có thể được truy cập bằng chỉ mục hoặc key của chúng.

Mảng được tạo ra bằng cách sử dụng hàm array[] trong PHP.

Bài 22: Khái niệm về mảng và cách dùng mảng trong PHP

1. Khái niệm mảng

Trong thực tế, chúng ta thường gặp các loại thông tin được thể hiện dưới dạng một danh sách, ví dụ: danh sách các thành viên cùng lớp, danh sách các vật dụng trong phòng, danh sách các món hàng cần mua, danh sách những người tham gia chuyến đi dã ngoại,...

Nếu như biểu diễn mỗi mục trong danh sách thông qua một biến thì chương trình sẽ rất phức tạp. Ví du: nếu một danh sách có 10 người, chúng ta phải tạo ra 10 biến [tạm thời có thể lọ mọ gõ được], nhưng nhỡ danh sách có 1000 người thì sao? [chắc chết!]

Để đơn giản hóa việc khai báo và quản lý danh sách, phần lớncác ngôn ngữ lập trình đều hỗ trợ việc tạo ra một biến duy nhất có thể lưu trữ được cấu trúc dữ liệu dạng danh sách. Trong PHP, danh sách này có thể được biểu diễn thông qua một dạng biến đặc biệt, gọi là mảng [Array]. Tạm thời, chúng ta có thể đồng nhất 4khái niệm danh sách, list, mảng, array để làm quen với kiểu cấu trúc dữ liệu này.

Chốt lại: Mảng là một danh sách các giá trị. Biến lưu trữ một mảng được gọi là biến mảng. Mỗi một giá trị trong danh sách [mảng] được gọi là một phần tử của mảng.

2. Chỉ số của mảng

Giống như chuỗi, mảng là một danh sách các phần tử, mỗi phần tử được đặt ở một vị trí xác định trong mảng. Vị trí xác định phần tử trong mảng được gọi là chỉ số của mảng. Chúng ta có thể truy cập trực tiếp tới một phần tử trong mảng thông qua cú pháp $biếnMảng["chỉ số"].

Tuy nhiên, mảng trongPHP có vài điểm khác biệtso với các ngôn ngữ khác, và do đó, chỉ số của mảng cũng được dùng theo cách hơi khác so với chuỗi:

  1. Trong phần lớn các ngôn ngữ lập trình, các phần tử trong một mảng chỉ được phép có chung một kiểu dữ liệu, tuy nhiên trong PHP, các phần tử trong một mảng có thể có nhiều kiểu dữ liệu khác nhau.
  2. Trong nhiều ngôn ngữ lập trình, chỉ số của mảng chính xác là "số chỉ vị trí", nhưng trong PHP, chỉ số của mảng lại thiên về ý nghĩa "định vị giá trị của phần tử trong mảng". Chỉ số mảng trong PHP không đơn thuần chỉ là một con số, mà còn có thể là một chuỗi. Chỉ số này do đó được gọi là "chìa khóa" [key] thay vì "chỉ số" [index].
Chúng ta sẽ tạm thời đồng nhất cáckhái niệm: chỉ số, khóa,key, index về một khái niệm là key. Key là một giá trị xác định, duy nhất để tìm đếnmột phần tử trong danh sách. Key có thể nhận một giá trị là số, chuỗi hoặc giá trị của một biến.

3. Khai báo một biến mảng

Chúng ta có thể khai báo một biến mảng qua hàm array với cú pháp sau:

$biếnMảng=array["giá trị 1", "giá trị 2", .... , "giá trị n"];

Trong trường hợp cần xác định chỉ số cho từng phần tử, chúng ta có thể sử dụng cú pháp mở rộng:

$biếnMảng=array[key_1=>"giá trị 1", key_2=>"giá trị 2", ... , key_n=>"giá trị n"]

Hoặc chỉ định luôn giá trị cho biến mảng:

$biếnMảng[key]="giá trị";

Ví dụ:

Ví dụ minh họa PHP - Học lập trình Online "Màu cam", "Chuối"=>"Màu vàng", "Táo" =>"Màu đỏ", "Đậu đen" =>"Màu đen"]; print_r[$bienMang2]; $bienMang3[0]="Thử một tí"; $bienMang3["Một"]="Thử hai tí"; $bienMang3[2]="Thử ba tí"; $bienMang3["3"]="Thử bốn tí"; print_r[$bienMang3]; ?>

4.Làm việc với mảng:

a. Tìm key của một phần tử trong danh sách

Để tìm keycủa một phần tử trong danh sách, chúng ta sử dụng hàm array_search[]với cú pháp:

array_search ["giá trị của phần tử", $biếnMảng];

Hàm này trả về keycủa phần tử đầu tiên bằng với giá trị cần tìm trong danh sách. Nếu không tìm thấy giá trị trong danh sách, hàm sẽ trả về giá trị false.

Ví dụ:

"Thử một tí", "Một"=>"Thử hai tí", 2=>"Thử ba tí", "3"=>"Thử bốn tí"]; $x=array_search["Thử hai tí",$bienMang3]; echo $x; ?>

b. Thay đổi giá trị của một phần tử.

Chúng ta có thể thay đổi giá trị của một phần tử bằng cách sử dụng cú pháp $biếnMảng[khóa]="giá trị mới"

Ví dụ: Đoạn mã sau đây sẽ thay phần tử có key= 2 sang giá trị mới

$bienMang3=array[0=>"Thử một tí", "Một"=>"Thử hai tí", 2=>"Thử ba tí", "3"=>"Thử bốn tí"]; $bienMang3[2]="Thôi không thử nữa"; print_r[$bienMang3];

c. Duyệt qua danh sách

Chúng ta có thể duyệt qua danh sách bằng lệnh foreach:

Cú pháp:

foreach [$biếnMảng as $biếnLưuGiáTrị]{ //Khối lệnh cần xử lý }

Nếu muốn lấy cả khóa và giá trị thì chúng ta sử dụng cú pháp:

foreach [$biếnMảng as $biếnLưuKhóa=>$biếnLưuGiáTrị]{ //Khối lệnh cần xử lý }

Ví dụ:

$bienMang3=array[0=>"Thử một tí", "Một"=>"Thử hai tí", 2=>"Thử ba tí", "3"=>"Thử bốn tí"]; foreach [$bienMang3 as $giaTri]{ echo ["Giá trị: {$giaTri}
"]; } foreach [$bienMang3 as $khoa=>$giaTri]{ echo ["Khóa: {$khoa}, giá trị tương ứng: {$giaTri}
"]; }

d. Kiểm tra xem một phần tử có trong danh sách hay không?

Chúng ta có thể kiểm tra xem một giá trị có nằm trong danh sách hay không với hàm in_array[] theo cú pháp:

in_array["giá trị cần kiểm tra", $biếnMảng];

Hàm này trả về true nếu giá trị nằm trong mảng, ngược lại trả về false;

Ví dụ:

$bienMang=array[0=>"Thử một tí", "Một"=>"Thử hai tí", 2=>"Thử ba tí", "3"=>"Thử bốn tí"]; if [in_array["Thử ba tí",$bienMang]]{ echo ["A đây rồi!"]; } else { echo ["Hic, không tìm thấy!"]; }

e. Đếm số lượng các phần tử trong mảng

Chúng ta có thể đếm số lượng các phần tử có trong mảng bằng cách sử dụng hàm count[$biếnMảng]

Ví dụ:

$mang=array[0=>"Thử một tí", "Một"=>"Thử hai tí", 2=>"Thử ba tí", "3"=>"Thử bốn tí"]; echo [count[$mang]];

f. Thêm và xóa phần tử

- Để thêm một phần tử vào cuối mảng, ta dùng hàm array_push[$biếnMảng, các giá trị cần thêm];

- Để chèn một phần tử với một chỉ số mới, chúng ta dùng cú pháp $biếnMảng[key mới]="giá trị mới";

- Để xóa một phần tử có keyxác định, ta dùng hàm unset[$biếnMảng[key]];

- Để xóa hoàn toàn một mảng, ta dùng hàm unset[$biếnMảng].

Ví dụ:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Ví dụ minh họa PHP - Học lập trình Online Mảng sau khi push:"]; print_r[$mang]; // Thêm vào key 10 với giá trị "Bưởi" $mang[10]="Bưởi"; echo ["

Mảng sau khi thêm key và giá trị:

"]; print_r[$mang]; //Hủy bỏ phần tử có key = 10: unset[$mang[10]]; echo ["

Mảng sau khi hủy giá trị có key=10:

"]; print_r[$mang]; //Hủy toàn bộ mảng: unset[$mang]; //in mảng echo ["

Mảng sau khi unset:

"]; print_r[$mang]; ?>

Bài 21: Các phép biến đổi và các hàm xử lý chuỗi trong PHP

Bài 23: Mảng đa chiều trong PHP

Giới thiệu

Cũng như mọi ngôn ngữ lập trình khác, PHP cũng tồn tại một cấu trúc dữ liệu đặc biệt được gọi là mảng [array].

Mảng là một cấu trúc dữ liệu đặc biệt dùng để lưu trữ một hoặc nhiều kiểu giá trị giống nhau trong một giá trị đơn.

Mỗi giá trị trong mảng còn được gọi là một phần tử [element]

Để hiểu rõ hơn về khái niệm mảng, hãy xét ví dụ thực tế sau:

Bạn là nhân viên IT của công ty xe hơi ABC. Vào một ngày đẹp trời, sếp đột nhiên nhờ bạn viết 1 đoạn chương trình PHP đơn giản để lưu trữ thông tin của các loại xe hiện có trong cửa hàng.

Thông thường để lưu trữ giá trị bạn sẽ làm như sau:

$cars1 = "Volvo"; $cars2 = "BMW"; $cars3 = "Toyota"; $cars4 = "Honda"; $cars5 = "Mitsubishi"; ...

Với cách tiếp cận này, ứng với mỗi loại xe bạn sẽ phải tạo 1 biến mới để lưu trữ giá trị. Tuy nhiên vấn đề đặt ra là nếu số loại xe trong cửa hàng không phải là 4 hay 5 mà là 300 thì việc tạo 1 biến mới cho mỗi loại xe liệu có còn phù hợp hay không?

Giải pháp là sử dụng mảng [array]

Với mảng, bạn chỉ cần tạo 1 mảng duy nhất, mảng này sẽ chứa một hoặc nhiều giá trị mà bạn mong muốn.

Quay trở lại vấn đề đặt ra, chúng ta sẽ tạo ra mảng $cars chứa toàn bộ các loại xe hiện có trong cửa hàng:

$cars = array["Volvo", "BMW", "Toyota", "Honda", "Mitsubishi", ...];

Rất gọn gàng và trực quan phải không nào :D

Video liên quan

Chủ Đề