Trong hướng dẫn này, tôi sẽ tạo một danh sách các hàm mảng PHP phổ biến, với các ví dụ về cách sử dụng và các phương pháp hay nhất. Mọi nhà phát triển PHP phải biết cách sử dụng chúng và cách kết hợp các hàm mảng để làm cho mã dễ đọc và ngắn gọn.
Ngoài ra, còn có một bản trình bày với các ví dụ mã nhất định, vì vậy bạn có thể tải xuống từ các liên kết có liên quan và hiển thị cho đồng nghiệp của mình để xây dựng một nhóm mạnh hơn
Những thứ cơ bản
Có hai cách khác nhau để tạo mảng. Một là sử dụng
/* Array
36 để chỉ định các phần tử là cặp khóa-giá trị. Phương pháp khác là đặt tất cả các phần tử bên trong /* Array
37. Có hai điểm quan trọng mà bạn nên nhớ khi tạo mảng liên kết với các cặp khóaĐầu tiên, khóa luôn phải là duy nhất. Nếu bạn cố gắng sử dụng cùng một khóa nhiều lần trong một mảng, PHP sẽ bỏ qua tất cả các cặp khóa-giá trị khác ngoại trừ cặp khóa cuối cùng. Thứ hai, nếu một khóa được tạo dưới dạng float, bool và các biểu diễn chuỗi hợp lệ của số nguyên, thì nó sẽ được chuyển thành số nguyên
Dưới đây là một vài ví dụ về tạo mảng trong PHP
1
$first = array[10, "Apple", 20, -18, "Monkey"];
2
print_r[$first];
3
/* Array
4
[
5
[0] => 10
$first = array[10, "Apple", 20, -18, "Monkey"];0
$first = array[10, "Apple", 20, -18, "Monkey"];1
$first = array[10, "Apple", 20, -18, "Monkey"];2
$first = array[10, "Apple", 20, -18, "Monkey"];3
$first = array[10, "Apple", 20, -18, "Monkey"];4
$first = array[10, "Apple", 20, -18, "Monkey"];5
$first = array[10, "Apple", 20, -18, "Monkey"];6
$first = array[10, "Apple", 20, -18, "Monkey"];7
$first = array[10, "Apple", 20, -18, "Monkey"];8
$first = array[10, "Apple", 20, -18, "Monkey"];9
20
21
22
23
24
25
/* Array
27
[
29
[0] => 10
print_r[$first];1
$first = array[10, "Apple", 20, -18, "Monkey"];1
print_r[$first];3
$first = array[10, "Apple", 20, -18, "Monkey"];3
print_r[$first];5
$first = array[10, "Apple", 20, -18, "Monkey"];5
print_r[$first];7
$first = array[10, "Apple", 20, -18, "Monkey"];7
print_r[$first];9
$first = array[10, "Apple", 20, -18, "Monkey"];9
31
32
33
34
35
36
/* Array
38
[
/* Array
0 [0] => 10
/* Array
2/* Array
3/* Array
4$first = array[10, "Apple", 20, -18, "Monkey"];3
/* Array
6/* Array
7/* Array
8________0 Như bạn có thể thấy, việc sử dụng
/* Array
36 hoặc /* Array
37 là tương đương khi tạo mảng. Ký hiệu tốc ký đã có sẵn bắt đầu từ PHP 5. 4Bạn cũng không cần chỉ định khóa cho mọi giá trị mảng. Khi bị bỏ qua, PHP đặt khóa thành nhiều hơn một khóa số nguyên được chỉ định lớn nhất. Tất cả các khóa được gán tự động sẽ lớn hơn hoặc bằng 0
Làm việc với khóa và giá trị
Hãy bắt đầu với các hàm cơ bản hoạt động với các khóa và giá trị của mảng. Một trong số đó là
/* Array
40, tạo một mảng bằng cách sử dụng một mảng cho các khóa và một mảng khác cho các giá trị của nó1
43_______4_______
45_______6_______
4___
48
59_______0
$first = array[10, "Apple", 20, -18, "Monkey"];0
$first = array[10, "Apple", 20, -18, "Monkey"];2
[
3$first = array[10, "Apple", 20, -18, "Monkey"];4
[
5$first = array[10, "Apple", 20, -18, "Monkey"];6
[
7$first = array[10, "Apple", 20, -18, "Monkey"];8
[
920_______10_______1_______4_______1_______10_______3
Bạn nên biết rằng hàm
/* Array
41 trả về một mảng giá trị được lập chỉ mục, /* Array
42 trả về một mảng khóa của một mảng đã cho và /* Array
43 trao đổi khóa với giá trị1
55_______4_______
57
3___
59
410_______9_______3_______3_______0
[
5$first = array[10, "Apple", 20, -18, "Monkey"];2
[0] => 10
6$first = array[10, "Apple", 20, -18, "Monkey"];4
[0] => 10
8$first = array[10, "Apple", 20, -18, "Monkey"];6
51
$first = array[10, "Apple", 20, -18, "Monkey"];8_______3_______02
Bạn có thể kiểm tra xem một mảng có chứa một giá trị cụ thể hay không và lấy khóa tương ứng đầu tiên của nó bằng cách sử dụng hàm
/* Array
44. Bạn cũng có thể sử dụng /* Array
45 nếu bạn chỉ muốn biết liệu một mảng có chứa một phần tử cụ thể hay không và không quan tâm đến vị trí của nó. Cân nhắc sử dụng hàm /* Array
46 khi bạn muốn kiểm tra xem mảng có sử dụng một khóa nhất định hay không1
$first = array[10, "Apple", 20, -18, "Monkey"];04
2
3
$first = array[10, "Apple", 20, -18, "Monkey"];07
4
$first = array[10, "Apple", 20, -18, "Monkey"];09
5
$first = array[10, "Apple", 20, -18, "Monkey"];11
$first = array[10, "Apple", 20, -18, "Monkey"];0
$first = array[10, "Apple", 20, -18, "Monkey"];13
$first = array[10, "Apple", 20, -18, "Monkey"];2
$first = array[10, "Apple", 20, -18, "Monkey"];4
$first = array[10, "Apple", 20, -18, "Monkey"];16
$first = array[10, "Apple", 20, -18, "Monkey"];6
$first = array[10, "Apple", 20, -18, "Monkey"];18
$first = array[10, "Apple", 20, -18, "Monkey"];8
$first = array[10, "Apple", 20, -18, "Monkey"];11
20
$first = array[10, "Apple", 20, -18, "Monkey"];22
21
23
$first = array[10, "Apple", 20, -18, "Monkey"];25
25
27
$first = array[10, "Apple", 20, -18, "Monkey"];28
29
$first = array[10, "Apple", 20, -18, "Monkey"];30
print_r[$first];1
print_r[$first];3
$first = array[10, "Apple", 20, -18, "Monkey"];33
print_r[$first];5
$first = array[10, "Apple", 20, -18, "Monkey"];35
print_r[$first];7
print_r[$first];9
$first = array[10, "Apple", 20, -18, "Monkey"];38
31
32
$first = array[10, "Apple", 20, -18, "Monkey"];41
34
$first = array[10, "Apple", 20, -18, "Monkey"];43
36
$first = array[10, "Apple", 20, -18, "Monkey"];11
38
$first = array[10, "Apple", 20, -18, "Monkey"];47
Như ví dụ trên cho thấy, hãy đảm bảo bạn sử dụng kiểm tra loại nghiêm ngặt nếu bạn không muốn có bất kỳ kết quả không mong muốn nào
Nếu bạn muốn tra cứu nhiều phần tử trong một mảng, thì việc kiểm tra xem mảng đó có chứa một giá trị cụ thể hay không sẽ nhanh hơn bằng cách lật mảng bằng
/* Array
43 và sau đó sử dụng /* Array
46 trước tiênLàm cho mã của bạn ngắn hơn
Hàm
/* Array
49, không thực sự là một hàm mà là một cấu trúc ngôn ngữ, được thiết kế để gán các biến một cách ngắn gọn. Ví dụ: đây là ví dụ cơ bản về cách sử dụng hàm /* Array
491
$first = array[10, "Apple", 20, -18, "Monkey"];49
2
$first = array[10, "Apple", 20, -18, "Monkey"];51
3________8____3_______54
53_______56
$first = array[10, "Apple", 20, -18, "Monkey"];0
$first = array[10, "Apple", 20, -18, "Monkey"];58
$first = array[10, "Apple", 20, -18, "Monkey"];2
$first = array[10, "Apple", 20, -18, "Monkey"];60
$first = array[10, "Apple", 20, -18, "Monkey"];4
$first = array[10, "Apple", 20, -18, "Monkey"];6
$first = array[10, "Apple", 20, -18, "Monkey"];63
$first = array[10, "Apple", 20, -18, "Monkey"];8
$first = array[10, "Apple", 20, -18, "Monkey"];65
Cấu trúc này hoạt động hoàn hảo với các chức năng như
/* Array
51 hoặc /* Array
52. Ngoài ra, bạn có thể bỏ qua một số tham số nếu không cần xác định1
$first = array[10, "Apple", 20, -18, "Monkey"];67_______4_______
$first = array[10, "Apple", 20, -18, "Monkey"];69
3
$first = array[10, "Apple", 20, -18, "Monkey"];71
Ngoài ra,
/* Array
49 có thể được sử dụng với /* Array
54, điều này làm cho cấu trúc này thậm chí còn tốt hơn1
$first = array[10, "Apple", 20, -18, "Monkey"];73_______4_______
3
$first = array[10, "Apple", 20, -18, "Monkey"];76
43_______78
53_______80
$first = array[10, "Apple", 20, -18, "Monkey"];0
$first = array[10, "Apple", 20, -18, "Monkey"];11
Với hàm
/* Array
55, bạn có thể xuất một mảng kết hợp thành các biến. Đối với mỗi phần tử của một mảng, một biến sẽ được tạo với tên của khóa và giá trị là giá trị của phần tử1
$first = array[10, "Apple", 20, -18, "Monkey"];84_______4_______
$first = array[10, "Apple", 20, -18, "Monkey"];86
3___
$first = array[10, "Apple", 20, -18, "Monkey"];88
43_______90
53_______92_______3_______0
$first = array[10, "Apple", 20, -18, "Monkey"];2
$first = array[10, "Apple", 20, -18, "Monkey"];95
$first = array[10, "Apple", 20, -18, "Monkey"];4
$first = array[10, "Apple", 20, -18, "Monkey"];6
$first = array[10, "Apple", 20, -18, "Monkey"];98
Xin lưu ý rằng
/* Array
55 không an toàn nếu bạn đang làm việc với dữ liệu người dùng [chẳng hạn như kết quả của các yêu cầu], vì vậy, tốt hơn là sử dụng chức năng này với các cờ /* Array
57 và /* Array
58Ngược lại với hàm trước đó là hàm
/* Array
59, tạo một mảng kết hợp từ các biến1
200
2
202
3___
204
410_______4_______07
$first = array[10, "Apple", 20, -18, "Monkey"];0
[
0$first = array[10, "Apple", 20, -18, "Monkey"];2
$first = array[10, "Apple", 20, -18, "Monkey"];4_______9_______3
$first = array[10, "Apple", 20, -18, "Monkey"];6
[
5$first = array[10, "Apple", 20, -18, "Monkey"];8
216_______4_______0_______4_______18_______4_______1_______04_______20
Chức năng lọc
Có một chức năng tuyệt vời để lọc mảng và nó được gọi là
/* Array
60. Truyền mảng dưới dạng tham số đầu tiên và hàm ẩn danh làm tham số thứ hai. Trả lại /* Array
61 trong hàm gọi lại nếu bạn muốn để nguyên phần tử này trong mảng và _______0_______62 nếu bạn không muốn1
224_______4_______
3
227
44_______29
54_______31
$first = array[10, "Apple", 20, -18, "Monkey"];0
$first = array[10, "Apple", 20, -18, "Monkey"];2
234
Có một cách để lọc không chỉ theo các giá trị. Bạn có thể sử dụng
/* Array
63 hoặc /* Array
64 làm tham số thứ ba để chuyển khóa hoặc cả giá trị và khóa cho hàm gọi lạiNgoài ra, bạn có thể gọi
/* Array
60 mà không cần gọi lại để xóa tất cả các giá trị trống1
236_______4_______
3
239
410_______
242
Bạn chỉ có thể nhận các giá trị duy nhất từ một mảng bằng cách sử dụng hàm
/* Array
66. Lưu ý rằng hàm sẽ bảo toàn các khóa của các phần tử duy nhất đầu tiên1
244
2
246
3___
4
249
53_______0
[
3$first = array[10, "Apple", 20, -18, "Monkey"];2
[
5$first = array[10, "Apple", 20, -18, "Monkey"];4_______62_______56
$first = array[10, "Apple", 20, -18, "Monkey"];6
258
$first = array[10, "Apple", 20, -18, "Monkey"];8
260_______4_______0_______4_______62_______4_______1_______4_______ 3_______1
Với
/* Array
67, bạn có thể nhận danh sách các giá trị cột từ một mảng nhiều chiều, chẳng hạn như câu trả lời từ cơ sở dữ liệu SQL hoặc bản nhập từ tệp CSV. Chỉ cần chuyển một mảng và tên cột1
$first = array[10, "Apple", 20, -18, "Monkey"];84_______4_______
270
3___
272
44_______74
53_______92
$first = array[10, "Apple", 20, -18, "Monkey"];0
$first = array[10, "Apple", 20, -18, "Monkey"];2
279
$first = array[10, "Apple", 20, -18, "Monkey"];4
$first = array[10, "Apple", 20, -18, "Monkey"];6
282
Bắt đầu từ PHP 7,
/* Array
67 thậm chí còn trở nên mạnh mẽ hơn vì giờ đây nó được phép. Vì vậy, làm việc với một loạt các mô hình trở nên dễ dàng hơn1
284_______4_______4_______86
Đi bộ qua các mảng
Sử dụng
/* Array
69, bạn có thể áp dụng lệnh gọi lại cho mọi phần tử của mảng. Bạn có thể chuyển tên hàm hoặc hàm ẩn danh để nhận một mảng mới dựa trên mảng đã cho1
288
2
290
3___
4
293_______10_______3_______0
296
$first = array[10, "Apple", 20, -18, "Monkey"];2
298
$first = array[10, "Apple", 20, -18, "Monkey"];4
print_r[$first];00
$first = array[10, "Apple", 20, -18, "Monkey"];6
print_r[$first];02
$first = array[10, "Apple", 20, -18, "Monkey"];8
20_______5_______05
Có một huyền thoại rằng không có cách nào để chuyển các giá trị và khóa của một mảng thành một cuộc gọi lại, nhưng chúng ta có thể phá vỡ nó
1
print_r[$first];07_______4_______
3___
print_r[$first];10
45_______12_______10_______5_______14
$first = array[10, "Apple", 20, -18, "Monkey"];0
$first = array[10, "Apple", 20, -18, "Monkey"];2
print_r[$first];17
$first = array[10, "Apple", 20, -18, "Monkey"];4
print_r[$first];19
$first = array[10, "Apple", 20, -18, "Monkey"];6
$first = array[10, "Apple", 20, -18, "Monkey"];8
[
320_______9_______5_______4_______1_______5_________26
254_______8_______
Nhưng điều này có vẻ bẩn. Tốt hơn nên sử dụng
/* Array
70 để thay thế. Chức năng này trông giống như /* Array
69, nhưng nó hoạt động khác. Trước hết, một mảng được truyền bằng cách sử dụng tham chiếu, vì vậy /* Array
70 không tạo mảng mới mà thay đổi mảng đã cho. Vì vậy, với tư cách là một mảng nguồn, bạn có thể chuyển giá trị mảng bằng tham chiếu trong hàm gọi lại. Các phím mảng cũng có thể được chuyển dễ dàng1
print_r[$first];32
2
print_r[$first];34
3
print_r[$first];36
4
print_r[$first];38
5
$first = array[10, "Apple", 20, -18, "Monkey"];92
$first = array[10, "Apple", 20, -18, "Monkey"];0
$first = array[10, "Apple", 20, -18, "Monkey"];2
print_r[$first];43
$first = array[10, "Apple", 20, -18, "Monkey"];4
print_r[$first];45
$first = array[10, "Apple", 20, -18, "Monkey"];6
231
$first = array[10, "Apple", 20, -18, "Monkey"];8
20
print_r[$first];50
21
23
[
325
[
527
print_r[$first];57
29
print_r[$first];59
print_r[$first];1
print_r[$first];61
print_r[$first];3
$first = array[10, "Apple", 20, -18, "Monkey"];02
Tham gia mảng
Cách tốt nhất để hợp nhất hai hoặc nhiều mảng trong PHP là sử dụng hàm
/* Array
73. Các mục của mảng sẽ được hợp nhất với nhau và các giá trị có cùng khóa chuỗi sẽ được ghi đè bằng giá trị cuối cùng1
print_r[$first];65
2
print_r[$first];67
3___
4
print_r[$first];70
55_______72
$first = array[10, "Apple", 20, -18, "Monkey"];0
[
3$first = array[10, "Apple", 20, -18, "Monkey"];2
[
5$first = array[10, "Apple", 20, -18, "Monkey"];4
print_r[$first];78
$first = array[10, "Apple", 20, -18, "Monkey"];6
print_r[$first];80
$first = array[10, "Apple", 20, -18, "Monkey"];8_______5_______82_______4_______0_______5_______84_______4_______1
Để xóa các giá trị mảng khỏi một mảng [hoặc nhiều mảng] khác, hãy sử dụng
/* Array
74. Để nhận các giá trị có trong các mảng nhất định, hãy sử dụng /* Array
75. Các ví dụ tiếp theo sẽ cho thấy nó hoạt động như thế nào1
print_r[$first];88
2
print_r[$first];90
3___
4
print_r[$first];93
55_______95
$first = array[10, "Apple", 20, -18, "Monkey"];0
$first = array[10, "Apple", 20, -18, "Monkey"];2
print_r[$first];98
$first = array[10, "Apple", 20, -18, "Monkey"];4
300
Làm phép toán với các giá trị mảng
Sử dụng
/* Array
76 để tính tổng các giá trị mảng, /* Array
77 để nhân chúng hoặc tạo công thức của riêng bạn với /* Array
781
302_______4_______
3___
305
46_______07
53_______0
310
$first = array[10, "Apple", 20, -18, "Monkey"];2
312
$first = array[10, "Apple", 20, -18, "Monkey"];4
314
Để đếm tất cả các giá trị của một mảng, hãy sử dụng
/* Array
79. Nó sẽ cung cấp tất cả các giá trị duy nhất của một mảng nhất định dưới dạng khóa và số lượng các giá trị này dưới dạng giá trị1
316
2
318
3___
4
321_______10_______3_______0
[
3$first = array[10, "Apple", 20, -18, "Monkey"];2
[
5$first = array[10, "Apple", 20, -18, "Monkey"];4
328
$first = array[10, "Apple", 20, -18, "Monkey"];6
330
$first = array[10, "Apple", 20, -18, "Monkey"];8
332_______4_______0_______3_______02
Tạo mảng
Để tạo một mảng có kích thước nhất định và cùng một giá trị, hãy sử dụng
/* Array
801
336_______4_______6_______38
Để tạo một mảng có nhiều khóa và giá trị, chẳng hạn như giờ trong ngày hoặc chữ cái, hãy sử dụng range[]
1
340_______4_______
342_______6_______
4
345
5
347
Để lấy một phần của mảng—ví dụ: chỉ ba phần tử đầu tiên—hãy sử dụng
/* Array
811
349_______4_______
351_______6_______
353
Nếu bạn muốn tạo một mảng kết hợp với các khóa khác nhau và cùng một giá trị được gán cho mỗi khóa, bạn chỉ cần sử dụng hàm
/* Array
821
355_______4_______
357
3___
4
360
53_______0
/* Array
3_______2[
$first = array[10, "Apple", 20, -18, "Monkey"];4
367
$first = array[10, "Apple", 20, -18, "Monkey"];6
369
$first = array[10, "Apple", 20, -18, "Monkey"];8
371
20_______3_______9
Sắp xếp mảng
Bạn nên nhớ rằng mọi hàm sắp xếp trong PHP đều hoạt động với các mảng theo một tham chiếu và trả về true khi thành công hoặc false khi thất bại. Có một hàm sắp xếp cơ bản có tên là
/* Array
83 và hàm này sắp xếp các giá trị theo thứ tự tăng dần mà không giữ nguyên khóa. Chức năng sắp xếp có thể được thêm vào trước bởi các chữ cái sau- a, sắp xếp khóa bảo toàn
- k, sắp xếp theo phím
- r, sắp xếp theo thứ tự đảo ngược/giảm dần
- u, sắp xếp với chức năng người dùng
Bạn có thể thấy sự kết hợp của các chữ cái này trong bảng sau
akrua_______0_______84
/* Array
85/* Array
86k/* Array
87/* Array
88r
/* Array
85/* Array
88/* Array
91u____0_______86
/* Array
93Kết hợp các hàm mảng như một ông chủ
Điều kỳ diệu thực sự bắt đầu khi bạn bắt đầu kết hợp các hàm mảng. Đây là cách bạn có thể cắt và loại bỏ các giá trị trống chỉ trong một dòng mã với
/* Array
60 và /* Array
691
375_______4_______
3
378_______8_______
380
Để tạo id cho bản đồ tiêu đề từ một loạt các mô hình, chúng ta có thể sử dụng kết hợp
/* Array
40 và /* Array
671
382
2
3
385
46_______87
56_______89
$first = array[10, "Apple", 20, -18, "Monkey"];0
391
Để lấy ba giá trị trên cùng của một mảng, chúng ta có thể sử dụng
/* Array
79, /* Array
85 và /* Array
811
393_______4_______
3___
396
4
398
50_______00
$first = array[10, "Apple", 20, -18, "Monkey"];0
$first = array[10, "Apple", 20, -18, "Monkey"];2
/* Array
03$first = array[10, "Apple", 20, -18, "Monkey"];4
[
3$first = array[10, "Apple", 20, -18, "Monkey"];6
[
5$first = array[10, "Apple", 20, -18, "Monkey"];8
/* Array
09_______4_______0_______0_______11_______4_______1_______0_______3_______13Thật dễ dàng để sử dụng
/* Array
76 và /* Array
69 để tính tổng thứ tự trong một vài hàng1
/* Array
17_______4_______/* Array
193___
/* Array
2140_______23
53_______92
$first = array[10, "Apple", 20, -18, "Monkey"];0
$first = array[10, "Apple", 20, -18, "Monkey"];2
/* Array
28$first = array[10, "Apple", 20, -18, "Monkey"];4
/* Array
30$first = array[10, "Apple", 20, -18, "Monkey"];6
/* Array
32$first = array[10, "Apple", 20, -18, "Monkey"];8_______4_______0_______0_______35
Phần kết luận
Như bạn có thể thấy, kiến thức về các hàm mảng chính có thể làm cho mã của bạn ngắn hơn và dễ đọc hơn. Tất nhiên, PHP có nhiều hàm mảng hơn và thậm chí các hàm đã cho cũng có nhiều biến thể để sử dụng với các tham số và cờ bổ sung, nhưng tôi nghĩ rằng trong hướng dẫn này, chúng ta đã đề cập đến những điều cơ bản mà mọi nhà phát triển PHP nên biết
Học PHP với một khóa học trực tuyến miễn phí
Nếu bạn muốn học PHP, hãy xem khóa học trực tuyến miễn phí của chúng tôi về các nguyên tắc cơ bản của PHP
Trong khóa học này, bạn sẽ học các nguyên tắc cơ bản của lập trình PHP. Bạn sẽ bắt đầu với những kiến thức cơ bản, học cách PHP hoạt động và viết các hàm và vòng lặp PHP đơn giản. Sau đó, bạn sẽ xây dựng các lớp mã hóa để lập trình hướng đối tượng đơn giản [OOP]. Đồng thời, bạn sẽ học tất cả các kỹ năng quan trọng nhất để viết ứng dụng cho web. bạn sẽ có cơ hội thực hành phản hồi các yêu cầu GET và POST, phân tích cú pháp JSON, xác thực người dùng và sử dụng cơ sở dữ liệu MySQL