Các kiến thức liên quan đến Array PHP và cách khai báo mảng trong PHP
Kiến thức lập trình

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

PT
Phạm Thị Diệu Linh
Xuất bản 10/28/2024

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.

mang-va-ham-trong-php.jpg

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

STTHàmChức năng
1array_change_key_caseThay đổi kiểu chữ in hoa, in thường của tất cả các key trong một mảng
2array_chunkChia mảng thành nhiều phần
3array_columnTrả về các value từ một cột riêng lẻ trong mảng đầu vào
4array_combineTạ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ó
5array_count_valuesĐếm tất cả các value của một mảng
6array_diff_assocChỉ ra sự khác biệt của các mảng bằng cách kiểm tra chỉ mục bổ sung
7array_diff_keyChỉ ra sự khác biệt của các mảng bằng cách so sánh các key
8array_diff_uassocChỉ 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
9array_diff_ukeyChỉ 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
10array_diffChỉ ra sự khác biệt giữa các mảng
11array_fill_keysĐiền các value, key được chỉ định vào một mảng
12array_fillĐiều các value vào một mảng
13array_filterLọ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
14array_flipTrao đổ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
15array_intersect_assocChỉ ra giao điểm của các mảng bằng cách kiểm tra chỉ mục bổ sung
16array_intersect_keyChỉ ra giao điểm của các hàm bằng cách so sánh các key
17array_intersect_uassocChỉ 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
18array_intersect_ukeySo 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
19array_intersectChỉ ra giao điểm của các mảng
20array_key_existsKiểm tra xem key hoặc chỉ mục được cung cấp có tồn tại trong mảng hay không
21array_key_firstNhận key đầu tiên của mảng
22array_key_lastNhận key cuối cùng của mảng
23array_keysTrả về tất cả các key hoặc một tập hợp con các key nằm trong mảng
24array_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
25array_merge_recursiveHợp nhất một hoặc nhiều mảng theo phương pháp đệ quy
26array_mergeHợp nhất một hoặc nhiều mảng
27array_multisortSắp xếp các mảng nhiều hoặc đa chiều
28array_padĐệm một mảng đến độ dài được chỉ định bằng một value
29array_popLoại bỏ phần tử ra khỏi phần cuối của mảng
30array_productTính toán tích các giá trị trong một mảng
31array_pushĐẩy một hoặc nhiều phần tử về cuối mảng
32array_randLấy một hoặc nhiều key ngẫu nhiên từ một mảng
33array_reduceGiả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.
34array_replace_recursiveThay 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
35array_replaceThay thế các phần tử từ các mảng đã được truyền vào mảng đầu tiên
36array_reverseTrả về một mảng có các phần tử được sắp xếp theo thứ tự ngược lại
37array_searchTì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
38array_shiftDịch chuyển một phần tử ra khỏi đầu mảng
39array_sliceTrích xuất một phần của mảng
40array_spliceXóa một phần của mảng và thay thế nó bằng một phần khác
41array_sumTính tổng các value trong một mảng
42array_udiff_assocChỉ 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
43array_udiff_uassocChỉ 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
44array_udiffChỉ 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
45array_uintersect_assocChỉ 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
46array_uintersect_uassocChỉ 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
47array_uintersectChỉ 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
48array_uniqueLoại bỏ các value trùng lặp trong một mảng
49array_unshiftThêm một hoặc nhiều phần tử vào đầu mảng
50array_valuesTrả về tất cả value của một mảng
51array_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
52array_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
53arrayTạo một mảng
54arsortSắ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
55asortSắp xếp một mảng và đảm bảo liên kết chỉ mục
56compactTạo mảng chứa các biến và value của chúng
57count

Đếm số phần tử trong mảng PHP, hoặc bất cứ thứ gì trong một đối tượng

58currentTrả về phần tử hiện tại trong mảng
59eachTrả 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
60endĐặt con trỏ nội bộ của một mảng vào phần tử cuối cùng của nó
61extractNhập các biến vào bảng ký hiệu hiện tại của mảng
62in_arrayKiểm tra một value có tồn tại trong mảng hay không
63key_existsTạo bí danh cho hàm array_key_exists
64keyTìm một key trong mảng
65krsortSắp xếp mảng sau khi key đã được sắp xếp theo thứ tự ngược lại
66ksortSắp xếp mảng theo key
67listGắn các biến như thể chúng là một mảng
68natcasesortSắ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
69natsortSắp xếp mảng bằng thuật toán “thứ tự tự nhiên”
70nextNâng cấp con trỏ nội bộ của mảng
71posTạo bí danh cho hàm hiện tại
72prevCuộn lại con trỏ nội bộ
73rangeTạo một mảng chứa một loạt phần tử
74resetĐặt con trỏ nội bộ của mảng vào phần tử đầu tiên của nó
75rsortSắp xếp mảng theo thứ tự ngược lại
76shuffleXáo trộn một mảng
77sizeofTạo bí danh cho hàm count
78sortSắp xếp mảng
79uasortSắ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
80uksortSắ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
81usortSắ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 Onschool Bootcamp

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.

Onschool Bootcamp 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.

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

Bạn đã sẵn sàng đổi thay sự nghiệp chưa?

Onschool Bootcamp tự hào chỉ trong 120 ngày, đào tạo thế hệ lập trình viên kiến tạo thế giới số - bắt đầu từ con số 0

Đừng quên chia sẻ bài viết này!

facebook
linkedin
x
copy
Sao chép link

Đăng ký tư vấn

Các Chương trình Đào tạo tại Onschool Bootcamp

Fullstack java web developer
Fullstack javascript (Nodejs & reactjs web developer
Fullstack Python web developer
Fullstack PHP web developer
Cross-Platform Mobile App Development
phonezalomessenger