Các kiến thức liên quan đến Array PHP và cách khai báo mảng trong PHP.

By 18/06/2021Tháng Bảy 17th, 2021KIẾN THỨC LẬP TRÌNH, PHP

Mảng trong PHP (array) là một kiểu dữ liệu đặc biệt, cùng lúc có thể chứa nhiều hơn một phần tử trong một biến duy nhất.

Sử dụng mảng mang lại nhiều lợi ích nhất định, trong đó có việc giảm thiểu chi phí và thời gian thực hiện dự án.

Thế nhưng, bạn đã nắm rõ các mảng thông dụng và chức năng của chúng hay chưa?

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 và các hàm xử lý trong php

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.

Array PHP hoạt động như thế nào?

Như bạn đã biết, các mảng chính là các biến có thể chứa nhiều hơn một giá trị. Dưới đây là một số thông tin cơ bản về mảng PHP:

  • Một mảng có thể chứa bất kỳ số lượng value nào, thậm chí là có thể không có value nào
  • Mỗi value trong một mảng được gọi là phần tử
  • Bạn truy cập từng phần tử thông qua chỉ mục của nó, là một giá trị số hoặc chuỗi. Mỗi phần tử trong mảng sẽ có mỗi chỉ mục duy nhất tương ứng.
  • Một phần tử có thể lưu trữ bất kỳ kiểu value nào, chẳng hạn như số nguyên, chuỗi hoặc kiểu dữ liệu Boolean. Bạn có thể kết hợp các kiểu này trong cùng một mảng
  • Độ dài của mảng là số phần tử trong mảng
  • Bản thân value của phần tử mảng có thể là một mảng. Do đó, bạn có thể tạo ra các mảng đa chiều.

Lợi ích của việc sử dụng mảng (array) trong PHP

Dưới đây là những lợi ích mà mảng PHP mang lại:

  • Dễ thao tác, thêm hoặc xóa các phần tử trong một mảng, chẳng hạn như đọc hoặc thay đổi value của một phần tử.
  • Dễ dàng làm việc với nhiều value cùng một lúc. Bạn có thể xem đi xem lại tất cả các phần tử trong một mảng, đọc hoặc thay đổi value của từng phần tử trong quá trình xem đi xem lại các phần tử đó.
  • PHP cung cấp cho bạn nhiều hàm liên quan đến mảng rất hữu ích. Ví dụ: sắp xếp các phần tử mảng nhanh chóng và dễ dàng, tìm kiếm mảng cho các value hoặc chỉ số cụ thể, hợp nhất các mảng với nhau,…

Các loại mảng trong PHP

Có 3 loại mảng khác nhau và mỗi value của mảng đều được truy cập bằng ID C được gọi là chỉ số mảng:

  • Mảng chỉ số: Các value được lưu trữ và truy cập theo kiểu tuyến tính.
  • Mảng kết hợp: Các value của phần tử kết hợp được lưu trữ với các giá trị key thay vì theo một thứ tự chỉ mục tuyến tính nghiêm ngặt.
  • Mảng đa chiều: Mảng chứa một hoặc nhiều mảng và value được truy cập bằng nhiều chỉ số

Để giúp bạn hiểu sâu hơn, tôi sẽ nêu rõ thông tin chi tiết và ví dụ minh họa về 3 loại mảng trong PHP này:

Mảng chỉ số

Các mảng này có thể lưu trữ số, chuỗi và bất cứ đối tượng nào nhưng chỉ mục của chúng sẽ được biểu diễn bằng các số. Theo mặc định, chỉ mục mảng bắt đầu từ số 0.

Ví dụ:

Trong ví dụ này, bạn sẽ thấy được cách tạo và truy cập mảng chỉ số

Ở đây, tôi sử dụng hàm array() để tạo mảng.

<html>

<body>

<?php

/* First method to create array. */

$numbers = array( 1, 2, 3, 4, 5);

foreach( $numbers as $value ) {

echo “Value is $value <br />”;

}

/* Second method to create array. */

$numbers[0] = “one”;

$numbers[1] = “two”;

$numbers[2] = “three”;

$numbers[3] = “four”;

$numbers[4] = “five”;

foreach( $numbers as $value ) {

echo “Value is $value <br />”;

}

?>

</body>

</html>

Và kết quả sẽ như sau:

Value is 1

Value is 2

Value is 3

Value is 4

Value is 5

Value is one

Value is two

Value is three

Value is four

Value is five

Mảng kết hợp

Mảng kết hợp tương tự như mảng chỉ số về mặt chức năng nhưng chúng lại khác nhau về mặt chỉ mục. Mảng kết hợp có chỉ mục dạng chuỗi giúp bạn có thể thiết lập liên kết chặt chẽ giữa key và value.

Cùng xem xét ví dụ dưới đây:

Để lưu trữ lương của nhân viên trong một mảng, bạn không nên lựa chọn mảng được lập chỉ mục bằng số.

Thay vào đó, hãy sử dụng tên nhân viên làm key trong mảng kết hợp và value sẽ là mức lương tương ứng của họ

Lưu ý: Không để mảng kết hợp trong dấu ngoặc kép khi in nếu không nó sẽ không trả về bất kỳ value nào

<html>

<body>

<?php

/* First method to associate create array. */

$salaries = array(“mohammad” => 2000, “qadir” => 1000, “zara” => 500);

echo “Salary of mohammad is “. $salaries[‘mohammad’] . “<br />”;

echo “Salary of qadir is “. $salaries[‘qadir’]. “<br />”;

echo “Salary of zara is “. $salaries[‘zara’]. “<br />”;

/* Second method to create array. */

$salaries[‘mohammad’] = “high”;

$salaries[‘qadir’] = “medium”;

$salaries[‘zara’] = “low”;

echo “Salary of mohammad is “. $salaries[‘mohammad’] . “<br />”;

echo “Salary of qadir is “. $salaries[‘qadir’]. “<br />”;

echo “Salary of zara is “. $salaries[‘zara’]. “<br />”;

?>

</body>

</html>

Và kết quả sẽ như sau:

Salary of mohammad is 2000

Salary of qadir is 1000

Salary of zara is 500

Salary of mohammad is high

Salary of qadir is medium

Salary of zara is low

Mảng đa chiều

Mỗi phần tử trong mảng đa chiều trong PHP cũng có thể là một mảng. Và mỗi phần tử trong mảng con cũng có thể là một mảng,…

Các giá trị trong mảng đa chiều trong PHP được tiếp cận bằng cách sử dụng chỉ mục đa chiều.

Trong ví dụ dưới đây, tôi tạo một mảng hai chiều để lưu trữ điểm của ba học sinh ở ba môn học.

Ví dụ này là một mảng kết hợp. Tuy nhiên, bạn cũng có thể tự tạo ra mảng chỉ số

<html>

<body>

<?php

$marks = array(

“mohammad” => array (

“physics” => 35,

“maths” => 30,

“chemistry” => 39

),

“qadir” => array (

“physics” => 30,

“maths” => 32,

“chemistry” => 29

),

“zara” => array (

“physics” => 31,

“maths” => 22,

“chemistry” => 39

)

);

/* Accessing multi-dimensional array values */

echo “Marks for mohammad in physics : ” ;

echo $marks[‘mohammad’][‘physics’] . “<br />”;

echo “Marks for qadir in maths : “;

echo $marks[‘qadir’][‘maths’] . “<br />”;

echo “Marks for zara in chemistry : ” ;

echo $marks[‘zara’][‘chemistry’] . “<br />”;

?>

</body>

</html>

Và kết quả sẽ như sau:

Marks for mohammad in physics : 35

Marks for qadir in maths : 32

Marks for zara in chemistry : 39

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

Dưới đây là bảng danh sách các hàm xử lý mảng trong PHP và chức năng của chúng

STT Hàm Chức năng
1 array_change_key_case Thay đổi kiểu chữ in hoa, in thường của tất cả các key trong một mảng
2 array_chunk Chia mảng thành nhiều phần
3 array_column Trả về các value từ một cột riêng lẻ trong mảng đầu vào
4 array_combine Tạo một mảng bằng cách sử dụng một mảng làm key và những mảng khác làm value của nó
5 array_count_values Đếm tất cả các value của một mảng
6 array_diff_assoc Chỉ ra sự khác biệt của các mảng bằng cách kiểm tra chỉ mục bổ sung
7 array_diff_key Chỉ ra sự khác biệt của các mảng bằng cách so sánh các key
8 array_diff_uassoc Chỉ ra sự khác biệt giữa các mảng bằng cách sử dụng kiểm tra chỉ mục bổ sung được thực hiện bởi một hàm gọi lại do người dùng chỉ định
9 array_diff_ukey Chỉ ra sự khác biệt giữa các mảng bằng cách sử dụng hàm gọi trên các key được so sánh
10 array_diff Chỉ ra sự khác biệt giữa các mảng
11 array_fill_keys Điền các value, key được chỉ định vào một mảng
12 array_fill Điều các value vào một mảng
13 array_filter Lọc các phần tử của một màng bằng cách sử dụng hàm gọi lại
14 array_flip Trao đổi tất cả các key với các value liên kết của chúng trong một mảng
15 array_intersect_assoc Chỉ ra giao điểm của các mảng bằng cách kiểm tra chỉ mục bổ sung
16 array_intersect_key Chỉ ra giao điểm của các hàm bằng cách so sánh các key
17 array_intersect_uassoc Chỉ ra giao điểm của các mảng bằng cách kiểm tra chỉ mục bổ sung, sử dụng hàm gọi lại để so sánh các chỉ mục này
18 array_intersect_ukey So sánh các key bằng cách sử dụng hàm gọi lại để tìm ra giao điểm của các mảng
19 array_intersect Chỉ ra giao điểm của các mảng
20 array_key_exists Kiểm tra xem key hoặc chỉ mục được cung cấp có tồn tại trong mảng hay không
21 array_key_first Nhận key đầu tiên của mảng
22 array_key_last Nhận key cuối cùng của mảng
23 array_keys Trả về tất cả các key hoặc một tập hợp con các key nằm trong mảng
24 array_map Áp dụng lệnh gọi lại cho các phần tử nằm trong mảng được cung cấp
25 array_merge_recursive Hợp nhất một hoặc nhiều mảng theo phương pháp đệ quy
26 array_merge Hợp nhất một hoặc nhiều mảng
27 array_multisort Sắp xếp các mảng nhiều hoặc đa chiều
28 array_pad Đệm một mảng đến độ dài được chỉ định bằng một value
29 array_pop Loại bỏ phần tử ra khỏi phần cuối của mảng
30 array_product Tính toán tích các giá trị trong một mảng
31 array_push Đẩy một hoặc nhiều phần tử về cuối mảng
32 array_rand Lấy một hoặc nhiều key ngẫu nhiên từ một mảng
33 array_reduce Giảm nhiều lần để mảng thành một value đơn bằng cách sử dụng hàm gọi lại.
34 array_replace_recursive Thay thế các phần tử từ các mảng đã được truyền vào mảng đầu tiên theo phương pháp đệ quy
35 array_replace Thay thế các phần tử từ các mảng đã được truyền vào mảng đầu tiên
36 array_reverse Trả về một mảng có các phần tử được sắp xếp theo thứ tự ngược lại
37 array_search Tìm kiếm mảng cho một value được chỉ định và trả về key tương ứng đầu tiên nếu thành công
38 array_shift Dịch chuyển một phần tử ra khỏi đầu mảng
39 array_slice Trích xuất một phần của mảng
40 array_splice Xóa một phần của mảng và thay thế nó bằng một phần khác
41 array_sum Tính tổng các value trong một mảng
42 array_udiff_assoc Chỉ ra sự khác biệt giữa các mảng bằng cách kiểm tra chỉ mục bổ sung, sử dụng hàm gọi lại để so sánh dữ liệu
43 array_udiff_uassoc Chỉ ra sự khác biệt giữa các mảng bằng cách kiểm tra chỉ mục bổ sung, sử dụng hàm gọi lại để so sánh dữ liệu và chỉ mục
44 array_udiff Chỉ ra sự khác biệt giữa các mảng bằng cách sử dụng hàm gọi lại để so sánh dữ liệu
45 array_uintersect_assoc Chỉ ra giao điểm của các mảng bằng cách kiểm tra chỉ mục bổ sung, sử dụng hàm gọi lại để so sánh dữ liệu
46 array_uintersect_uassoc Chỉ ra giao điểm của các mảng bằng cách kiểm tra chỉ mục bổ sung, sử dụng hàm gọi riêng biệt lại để so sánh dữ liệu và chỉ mục
47 array_uintersect Chỉ ra giao điểm của các mảng, sử dụng hàm gọi lại để so sánh dữ liệu
48 array_unique Loại bỏ các value trùng lặp trong một mảng
49 array_unshift Thêm một hoặc nhiều phần tử vào đầu mảng
50 array_values Trả về tất cả value của một mảng
51 array_walk_recursive Áp dụng hàm do người dùng cung cấp theo phương pháp đệ quy cho tất cả thành viên của mảng
52 array_walk Áp dụng hàm cho người dùng cung cấp cho tất cả thành viên của mảng
53 array Tạo một mảng
54 arsort Sắp xếp một mảng theo thứ tự ngược lại nhưng vẫn đảm bảo liên kết chỉ mục
55 asort Sắp xếp một mảng và đảm bảo liên kết chỉ mục
56 compact Tạo mảng chứa các biến và value của chúng
57 count Đếm số phần tử trong mảng PHP, hoặc bất cứ thứ gì trong một đối tượng
58 current Trả về phần tử hiện tại trong mảng
59 each Trả về cặp key và value hiện tại của một mảng và nâng cấp con trỏ mảng
60 end Đặt con trỏ nội bộ của một mảng vào phần tử cuối cùng của nó
61 extract Nhập các biến vào bảng ký hiệu hiện tại của mảng
62 in_array Kiểm tra một value có tồn tại trong mảng hay không
63 key_exists Tạo bí danh cho hàm array_key_exists
64 key Tìm một key trong mảng
65 krsort Sắp xếp mảng sau khi key đã được sắp xếp theo thứ tự ngược lại
66 ksort Sắp xếp mảng theo key
67 list Gắn các biến như thể chúng là một mảng
68 natcasesort Sắp xếp mảng bằng thuật toán “thứ tự tự nhiên” mà không phân biệt chữ hoa, chữ thường
69 natsort Sắp xếp mảng bằng thuật toán “thứ tự tự nhiên”
70 next Nâng cấp con trỏ nội bộ của mảng
71 pos Tạo bí danh cho hàm hiện tại
72 prev Cuộn lại con trỏ nội bộ
73 range Tạo một mảng chứa một loạt phần tử
74 reset Đặt con trỏ nội bộ của mảng vào phần tử đầu tiên của nó
75 rsort Sắp xếp mảng theo thứ tự ngược lại
76 shuffle Xáo trộn một mảng
77 sizeof Tạo bí danh cho hàm count
78 sort Sắp xếp mảng
79 uasort Sắp xếp mảng bằng hàm so sánh do người dùng xác định nhưng vẫn duy trì liên kết chỉ mục
80 uksort Sắp xếp mảng theo các key bằng cách sử dụng hàm so sánh do người dùng xác định
81 usort Sắp xếp mảng theo value bằng cách sử dụng hàm so sánh do người dùng xác định

Học cách ứng dụng mảng trong lập trình web thực tế tại Ironhack Việt Nam

Nếu muốn tìm hiểu kiến thức về lập trình, đặc biệt là cách ứng dụng array PHP vào thực tế, từ con số 0 thì Ironhack chính là sự lựa chọn đáng tin cậy dành cho bạn.

Ironhack có các khóa học lập trình PHP từ cơ bản đến nâng cao. Bên cạnh đó, còn tư vấn lộ trình học tập tùy thuộc vào trình độ và định hướng của mỗi học viên.

Ironhack ứng dụng phương pháp Learning by doing vào giảng dạy, giúp học viên củng cố kiến thức lý thuyết thông qua các vấn đề, dự án thực tế.

Chỉ với 120 ngày học, học viên có cơ hội trở thành lập trình viên front-end, lập trình viên back-end và thậm chí là lập trình viên full-stack.

Đặc biệt, Ironhack còn cam kết hỗ trợ trong quá trình học viên thực tập tại các công ty công nghệ.

Bên cạnh đó, hoàn trả học phí nếu sau khi kết thúc khóa học, học viên không thể tìm được công việc đúng chuyên môn.

array php

Khóa hoc PHP tại Ironhack Việt Nam

Kết luận

Hy vọng qua bài viết này, bạn đã hiểu rõ hơn về mảng trong PHP là gì và biết được một số hàm xử lý mảng thông dụng.

Nếu bạn mong muốn trở thành một developer chuyên nghiệp thì hãy nhanh chóng vạch ra lộ trình học tập càng sớm càng tốt nhé.

Để lại một câu trả lời