Trong các kiểu dữ liệu của mảng php là kiểu dữ liệu mà chúng ta thường xử lý nhiều nhất với nó. Trong bài viết này mình xin tổng hợp các hàm liên quan đến mảng php
Thêm một phần tử vào mảng
Có nhiều cách thêm vào mời bạn xem ví dụ sau
1
2
3
4
5
6
//Khởi tạo mảng rỗng
$mảng = mảng[];
// sử dụng mảng_push
array_push[$arr, 5];
//cách thứ 2
$arr[] = 5;
Delete an element from array
Để xóa một phần tử khỏi mảng thao tác như sau, đầu tiên chúng ta sẽ tìm kiếm chỉ mục với array_search, sau khi có chỉ mục rồi chúng ta sẽ sử dụng array_splice hoặc cũng có thể sử dụng unset
Trong hướng dẫn này, tôi sẽ liệt kê một danh sách các hàm phổ biến về mảng trong PHP với các ví dụ về cách sử dụng và cách làm tốt nhất. Mỗi nhà phát triển PHP phải biết cách sử dụng chúng như thế nào và cách kết hợp các mảng để làm cho mã dễ đọc và rút ngắn
Ngoài ra, còn có một bài thuyết trình đi kèm với các mã ví dụ, bạn có thể tải xuống từ các liên kết liên quan và đưa nó cho đồng nghiệp của bạn xem để xây dựng một đội ngũ ngũ cốc mạnh mẽ hơn
Cơ bản
Hãy bắt đầu với các chức năng cơ bản làm việc với các khóa và giá trị của mảng. Một số trong chúng là array_combine[], nó tạo ra một mảng bằng cách sử dụng các khóa của một mảng và các giá trị của một mảng khác
1
$keys = ['sky', 'grass', 'orange'];
2
$values = ['blue', 'green', 'orange'];
3
4
$array = array_combine[$keys, $values];
5
print_r[$array];
6
$keys = ['sky', 'grass', 'orange'];0
$keys = ['sky', 'grass', 'orange'];1
$keys = ['sky', 'grass', 'orange'];2
$keys = ['sky', 'grass', 'orange'];3
$keys = ['sky', 'grass', 'orange'];4
$keys = ['sky', 'grass', 'orange'];5
$keys = ['sky', 'grass', 'orange'];6
$keys = ['sky', 'grass', 'orange'];7
$keys = ['sky', 'grass', 'orange'];8
$keys = ['sky', 'grass', 'orange'];9
20
21
Bạn chắc chắn đã biết, array_values[] trả về một mảng các giá trị đã được đặt chỉ mục, array_keys[] trả về một mảng khóa của một mảng cho trước, và array_flip[] đổi vị trí các khóa với các giá trị
1
23_______2_______
25
3
27_______5__________
51_______1
61_______3
$keys = ['sky', 'grass', 'orange'];0
$values = ['blue', 'green', 'orange'];4
$keys = ['sky', 'grass', 'orange'];2
$values = ['blue', 'green', 'orange'];6
$keys = ['sky', 'grass', 'orange'];4
$keys = ['sky', 'grass', 'orange'];9
$keys = ['sky', 'grass', 'orange'];6
30
Làm cho mã của bạn ngắn hơn
Hàm list[], nó 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 theo một cách rút gọn. Ví dụ, đây là một ví dụ cơ bản về việc sử dụng hàm
309
1
32
2
34_______4_______
4___
37
54_______9_______9_______5_______1_______1_______0
43
$keys = ['sky', 'grass', 'orange'];2
$keys = ['sky', 'grass', 'orange'];4
46
$keys = ['sky', 'grass', 'orange'];6
48
Cấu trúc này hoạt động một cách hoàn hảo với các chức năng như
310 hoặc
311. Ngoài ra, bạn có thể bỏ qua một số tham số, nếu bạn không cần chúng phải được định nghĩa
1
$array = array_combine[$keys, $values];0_______2_______
$array = array_combine[$keys, $values];2
3
$array = array_combine[$keys, $values];4
Ngoài ra,
309 có thể được sử dụng với
313, nó làm cho cấu trúc này thậm chí còn tốt hơn
1
$array = array_combine[$keys, $values];6
2
3
$array = array_combine[$keys, $values];9_______5__________
51
5
53_______9_______
55
Với hàm extract[], 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 ra với tên của một từ khóa và giá trị như một giá trị của biến
1
57
2
59_______4_______
print_r[$array];1_______5__________
print_r[$array];3
58_______5
6
$keys = ['sky', 'grass', 'orange'];0
print_r[$array];8
$keys = ['sky', 'grass', 'orange'];2
$keys = ['sky', 'grass', 'orange'];4
61
Xin lưu ý rằng
314 là không hoàn toàn nếu bạn làm việc với người dùng dữ liệu [như kết quả của những yêu cầu], làm điều đó tốt hơn là sử dụng chức năng này với cờ
315 và
316
Ngược lại với hàm trước đó là hàm compact[], nó tạo ra một mảng kết hợp từ các biến
1
63
2
65
3
67_______5__________
51_______00
68_______1_______0
$keys = ['sky', 'grass', 'orange'];2
$keys = ['sky', 'grass', 'orange'];1
$keys = ['sky', 'grass', 'orange'];4
$keys = ['sky', 'grass', 'orange'];3
$keys = ['sky', 'grass', 'orange'];6
$keys = ['sky', 'grass', 'orange'];09
$keys = ['sky', 'grass', 'orange'];8
$keys = ['sky', 'grass', 'orange'];11_______2_______0_______1_______13_______1_______14_______0
Các Hàm Lọc
Có một hàm tuyệt vời cho mảng, và nó được gọi là array_filter[]. Truyền truy cập vào như một tham số đầu tiên và một hàm ẩn danh làm tham số thứ hai. Trả về
317 trong hàm gọi lại nếu bạn muốn khôi phục lại phần tử này trong mảng và
318 nếu bạn không muốn
1
$keys = ['sky', 'grass', 'orange'];17_______2_______
3
$keys = ['sky', 'grass', 'orange'];20_______5_______
$keys = ['sky', 'grass', 'orange'];22
51_______24
6
$keys = ['sky', 'grass', 'orange'];0
$keys = ['sky', 'grass', 'orange'];27
Có một cách để lọc không chỉ bởi các giá trị. Bạn có thể sử dụng
319 hoặc
320 như một tham số thứ ba để truyền khóa hoặc cả giá trị và khóa vào hàm gọi lại
Đồng thời, bạn có thể gọi
321 mà không cần gọi lại để loại bỏ tất cả các giá trị trống
1
$keys = ['sky', 'grass', 'orange'];29
2
3
$keys = ['sky', 'grass', 'orange'];32
4
5
$keys = ['sky', 'grass', 'orange'];35
Bạn có thể nhận được các giá trị duy nhất từ một mảng bằng cách sử dụng hàm array_unique[]. Lưu ý rằng chức năng này sẽ đảm bảo lưu các khóa của các phần tử duy nhất đầu tiên
1
$keys = ['sky', 'grass', 'orange'];37
2
$keys = ['sky', 'grass', 'orange'];39
3
4
$keys = ['sky', 'grass', 'orange'];42
5
6
$keys = ['sky', 'grass', 'orange'];1
$keys = ['sky', 'grass', 'orange'];0
$keys = ['sky', 'grass', 'orange'];3
$keys = ['sky', 'grass', 'orange'];2
$keys = ['sky', 'grass', 'orange'];49
$keys = ['sky', 'grass', 'orange'];4
$keys = ['sky', 'grass', 'orange'];51
$keys = ['sky', 'grass', 'orange'];6
$keys = ['sky', 'grass', 'orange'];53
$keys = ['sky', 'grass', 'orange'];8_______1_______55_______2_______0_______1_______57_______1
Với array_column[], bạn có thể nhận được một danh sách các giá trị cột từ một mảng đa chiều, giống như một câu trả lời từ cơ sở dữ liệu SQL hoặc một lần nhập [nhập] từ một tệp CSV. Chỉ cần truyền vào một mảng và cột tên
1
57
21_______63
3
$keys = ['sky', 'grass', 'orange'];65
4
$keys = ['sky', 'grass', 'orange'];67
58_______5
6___
$keys = ['sky', 'grass', 'orange'];0
$keys = ['sky', 'grass', 'orange'];72
$keys = ['sky', 'grass', 'orange'];2
$keys = ['sky', 'grass', 'orange'];4
$keys = ['sky', 'grass', 'orange'];75
Bắt đầu từ PHP 7,
322 còn trở nên mạnh mẽ hơn, bởi vì bây giờ nó được phép. Vì vậy, làm việc với một mảng các mô hình trở nên dễ dàng hơn
1
$keys = ['sky', 'grass', 'orange'];77
21_______79
Duyệt qua các Mảng
Sử dụng array_map[], bạn có thể áp dụng một cuộc gọi lại cho từng phần tử của một mảng. Bạn có thể truyền một tên hàm hoặc ẩn danh hàm để có một mảng mới dựa trên mảng đã cho
1
$keys = ['sky', 'grass', 'orange'];81
2
$keys = ['sky', 'grass', 'orange'];83_______4_______________5____1_______86
5
6
$keys = ['sky', 'grass', 'orange'];89
$keys = ['sky', 'grass', 'orange'];0
$keys = ['sky', 'grass', 'orange'];91
$keys = ['sky', 'grass', 'orange'];2
$keys = ['sky', 'grass', 'orange'];93
$keys = ['sky', 'grass', 'orange'];4
$keys = ['sky', 'grass', 'orange'];95
$keys = ['sky', 'grass', 'orange'];6
$keys = ['sky', 'grass', 'orange'];8
$keys = ['sky', 'grass', 'orange'];98
Có một người truyền thuyết nói rằng không có cách nào để truyền các giá trị và khóa của một mảng vào một cuộc gọi lại, nhưng họ có thể phá vỡ điều đó
1
200_______2_______
3___
203
4
205_______7_______2_______07
61_______0
210
$keys = ['sky', 'grass', 'orange'];2
212
$keys = ['sky', 'grass', 'orange'];4
$keys = ['sky', 'grass', 'orange'];6
$keys = ['sky', 'grass', 'orange'];1
$keys = ['sky', 'grass', 'orange'];8
$keys = ['sky', 'grass', 'orange'];3_______2_______0_______2_______19_______2_
$keys = ['sky', 'grass', 'orange'];2_______20
Nhưng điều này có vẻ không tốt. Tốt hơn là sử dụng array_walk[] để thay thế. Hàm này trông giống như
323, nhưng cách hoạt động lại khác. Trước đó, một mảng được truyền bằng một tham chiếu, do đó,
324 không tạo ra một mảng mới, mà mảng đã thay đổi. Vì vậy, với một mảng nguồn, bạn có thể truyền giá trị mảng bằng một tham chiếu trong một cuộc gọi lại. Các khóa của mảng cũng có thể được truyền đi một cách dễ dàng
1
225
2
227
3
229
4
231
5
print_r[$array];5
6
$keys = ['sky', 'grass', 'orange'];0
236
$keys = ['sky', 'grass', 'orange'];2
238
$keys = ['sky', 'grass', 'orange'];4
$keys = ['sky', 'grass', 'orange'];24
$keys = ['sky', 'grass', 'orange'];6
$keys = ['sky', 'grass', 'orange'];8
243
20
$keys = ['sky', 'grass', 'orange'];14
$keys = ['sky', 'grass', 'orange'];1
222
$keys = ['sky', 'grass', 'orange'];3
249
250
251
252
253
254
255
30
Order các Mảng
Cách tốt nhất để hợp nhất hai hoặc nhiều mảng nhất trong PHP là sử dụng hàm array_merge[]. Các phần tử của các mảng sẽ được hợp nhất lại với nhau và các giá trị tương ứng với một khóa sẽ bị ghi đè bằng giá trị cuối cùng
1
258
2
260
3
4
263
52_______65
61_______1
$keys = ['sky', 'grass', 'orange'];0
$keys = ['sky', 'grass', 'orange'];3
$keys = ['sky', 'grass', 'orange'];2
271
$keys = ['sky', 'grass', 'orange'];4
273
$keys = ['sky', 'grass', 'orange'];6
275_______1_______8_______2_______77_______2_______0_______2_______1
Để loại bỏ các giá trị của mảng khỏi một mảng khác [hoặc các mảng], hãy sử dụng array_diff[]. Để lấy các giá trị có sẵn trong các mảng cho trước, hãy sử dụng array_intersect[]. Các ví dụ tiếp theo sẽ cho thấy nó hoạt động như thế nào
1
281
2
283_______4_______
4
286
52_______88
6
$keys = ['sky', 'grass', 'orange'];0
291
$keys = ['sky', 'grass', 'orange'];2
293
Làm toán với các giá trị của Mãng
Sử dụng array_sum[] để lấy tổng giá trị của mảng, array_product[] cho nhân viên, hoặc tạo công thức của riêng bạn với array_reduce[]
1
295_______2_______
3___
298_______5_______3_______00_______7_______
6
$values = ['blue', 'green', 'orange'];03
$keys = ['sky', 'grass', 'orange'];0
$values = ['blue', 'green', 'orange'];05
$keys = ['sky', 'grass', 'orange'];2
$values = ['blue', 'green', 'orange'];07
Để đếm tất cả các giá trị của một mảng, hãy sử dụng array_count_values[]. Nó sẽ cung cấp cho bạn tất cả các giá trị duy nhất của một mảng cho trước như các khóa và kết quả là các giá trị này được tính như một giá trị
1
$values = ['blue', 'green', 'orange'];09
2
$values = ['blue', 'green', 'orange'];11_______4_______
4
$values = ['blue', 'green', 'orange'];14
5
6
$keys = ['sky', 'grass', 'orange'];1
$keys = ['sky', 'grass', 'orange'];0
$keys = ['sky', 'grass', 'orange'];3
$keys = ['sky', 'grass', 'orange'];2
$values = ['blue', 'green', 'orange'];21
$keys = ['sky', 'grass', 'orange'];4
$values = ['blue', 'green', 'orange'];23
$keys = ['sky', 'grass', 'orange'];6
$values = ['blue', 'green', 'orange'];25
$keys = ['sky', 'grass', 'orange'];8_______4_______0
Create Mảng
Để tạo một mảng với một kích thước được định rõ nhất và các giá trị như nhau, hãy sử dụng array_fill[]
1
$values = ['blue', 'green', 'orange'];29
23_______31
Để tạo một mảng với một dãy khóa và giá trị, giống như giờ trong ngày hoặc các ký tự, hãy sử dụng phạm vi []
1
$values = ['blue', 'green', 'orange'];33_______2_______
$values = ['blue', 'green', 'orange'];35_______4_______
4
$values = ['blue', 'green', 'orange'];38
53_______40
Để lấy một phần của mảng, ví dụ, chỉ ba phần tử đầu tiên—sử dụng array_slice[]
1
$values = ['blue', 'green', 'orange'];42____2_______
$values = ['blue', 'green', 'orange'];44
3
$values = ['blue', 'green', 'orange'];46
Sắp xếp Mảng
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 bằng tham chiếu và trả về true nếu thành công hoặc sai nếu thất bại. Có một hàm sắp xếp cơ bản được gọi là sort[], và nó sắp xếp các giá trị theo thứ tự tăng dần mà không lưu các từ khóa. Sắp xếp hạng có thể được thêm vào trước bằng các ký tự sau
- a, sắp xếp các khóa đã lưu
- k, sắp xếp theo các khóa
- r, sắp xếp theo chiều lùi/giảm dần theo thứ tự
- u, sort to an user function
Bạn có thể thấy sự kết hợp của các chữ cái này trong bảng sau
aruaasortarsortuasortkksortkrsortrarsortkrsortrsortuuasort
sử dụng
Kết hợp các Hàm Mảng Một cách chuyên nghiệp
Ma thuật thực sự bắt đầu khi bạn kết hợp các mảng chức năng. Dưới đây là cách bạn có thể cắt và xóa các giá trị trống chỉ bằng một dòng mã với
321 và
323
1
$values = ['blue', 'green', 'orange'];48
2
3
$values = ['blue', 'green', 'orange'];51_______5_______
$values = ['blue', 'green', 'orange'];53
Để tạo một id cho một bản đồ tiêu đề từ một mảng các mô hình, chúng ta có thể sử dụng một sự kết hợp của
327 và
322
1
$values = ['blue', 'green', 'orange'];55_______2_______
3
$values = ['blue', 'green', 'orange'];58_______5_______
$values = ['blue', 'green', 'orange'];60
53_______62
6
$values = ['blue', 'green', 'orange'];64
Để có được giá trị đầu tiên của một mảng, chúng ta có thể sử dụng
329,
330 và
331
1
$values = ['blue', 'green', 'orange'];66
2
3
$values = ['blue', 'green', 'orange'];69
4
$values = ['blue', 'green', 'orange'];71_______7_______3_______73
61_______0
$values = ['blue', 'green', 'orange'];76
$keys = ['sky', 'grass', 'orange'];2
$keys = ['sky', 'grass', 'orange'];1
$keys = ['sky', 'grass', 'orange'];4
$keys = ['sky', 'grass', 'orange'];3
$keys = ['sky', 'grass', 'orange'];6
$values = ['blue', 'green', 'orange'];82
$keys = ['sky', 'grass', 'orange'];8_______3_______84_______2_______0_______3_
print_r[$array];86_______1_______1
Rất dễ sử dụng
332 và
323 để tính tổng theo thứ tự trong một vài dòng
1
$values = ['blue', 'green', 'orange'];90
2
$values = ['blue', 'green', 'orange'];92
3___
$values = ['blue', 'green', 'orange'];94_______5_______3_______96
58_______5
6___
$keys = ['sky', 'grass', 'orange'];0
301
$keys = ['sky', 'grass', 'orange'];2
303
$keys = ['sky', 'grass', 'orange'];4
305
$keys = ['sky', 'grass', 'orange'];6
$keys = ['sky', 'grass', 'orange'];8_______4_______08
tóm tắt
Như bạn thấy đó, kiến thức về các hàm chính để thao tác mảng có thể làm cho mã của bạn trở nên ngắn gọn hơn và dễ đọc hơn. Tất nhiên, PHP có nhiều hơn các mảng hàm này, và ngay cả các hàm đã cho cũng có nhiều biến thể để sử dụng với các tham số và cờ, nhưng tôi nghĩ rằng trong hướng dẫn này, chúng ta đã khái quát những điều này
Xin hãy lưu ý rằng tôi đã tạo một bản thuyết trình với các ví dụ đã chọn, để bạn có thể tải xuống từ các liên kết có liên quan và đưa ra cho nhóm của bạn xem