Hàm trong mảng php

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

Hàm trong mảng php
Các hàm liên quan đến xử lý 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
2
0
2
1

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
2
3_______2_______
2
5
3
2
7_______5__________
5
1_______1
6
1_______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
3
0

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

3
09

1
3
2
2
3
4_______4_______
4
___
3
7
5
4_______9_______9_______5_______1_______1_______0
4
3
$keys = ['sky', 'grass', 'orange'];
2
$keys = ['sky', 'grass', 'orange'];
4
4
6
$keys = ['sky', 'grass', 'orange'];
6
4
8

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ư

3
10 hoặc
3
11. 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,

3
09 có thể được sử dụng với
3
13, 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__________
5
1
5
5
3_______9_______
5
5

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
5
7
2
5
9_______4_______
print_r($array);
1_______5__________
print_r($array);
3
5
8_______5
6
$keys = ['sky', 'grass', 'orange'];
0
print_r($array);
8
$keys = ['sky', 'grass', 'orange'];
2
$keys = ['sky', 'grass', 'orange'];
4
6
1

Xin lưu ý rằng

3
14 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ờ
3
15 và
3
16

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
6
3
2
6
5
3
6
7_______5__________
5
1_______00
6
8_______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ề

3
17 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à
3
18 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
5
1_______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

3
19 hoặc
3
20 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

3
21 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
5
7
2
1_______63
3
$keys = ['sky', 'grass', 'orange'];
65
4
$keys = ['sky', 'grass', 'orange'];
67
5
8_______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,

3
22 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
2
1_______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
2
00_______2_______
3
___
2
03
4
2
05_______7_______2_______07
6
1_______0
2
10
$keys = ['sky', 'grass', 'orange'];
2
2
12
$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ư

3
23, 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 đó,
3
24 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
2
25
2
2
27
3
2
29
4
2
31
5
print_r($array);
5
6
$keys = ['sky', 'grass', 'orange'];
0
2
36
$keys = ['sky', 'grass', 'orange'];
2
2
38
$keys = ['sky', 'grass', 'orange'];
4
$keys = ['sky', 'grass', 'orange'];
24
$keys = ['sky', 'grass', 'orange'];
6
$keys = ['sky', 'grass', 'orange'];
8
2
43
2
0
$keys = ['sky', 'grass', 'orange'];
14
$keys = ['sky', 'grass', 'orange'];
1
2
22
$keys = ['sky', 'grass', 'orange'];
3
2
49
2
50
2
51
2
52
2
53
2
54
2
55
3
0

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
2
58
2
2
60
3
4
2
63
5
2_______65
6
1_______1
$keys = ['sky', 'grass', 'orange'];
0
$keys = ['sky', 'grass', 'orange'];
3
$keys = ['sky', 'grass', 'orange'];
2
2
71
$keys = ['sky', 'grass', 'orange'];
4
2
73
$keys = ['sky', 'grass', 'orange'];
6
2
75_______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
2
81
2
2
83_______4_______
4
2
86
5
2_______88
6
$keys = ['sky', 'grass', 'orange'];
0
2
91
$keys = ['sky', 'grass', 'orange'];
2
2
93

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
2
95_______2_______
3
___
2
98_______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
2
3_______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
5
3_______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

aruaasort
arsortuasortkksortkrsortrarsortkrsortrsortuuasort
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

3
21 và
3
23

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

3
27 và
3
22

1
$values = ['blue', 'green', 'orange'];
55_______2_______
3
$values = ['blue', 'green', 'orange'];
58_______5_______
$values = ['blue', 'green', 'orange'];
60
5
3_______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

3
29,
3
30 và
3
31

1
$values = ['blue', 'green', 'orange'];
66
2
3
$values = ['blue', 'green', 'orange'];
69
4
$values = ['blue', 'green', 'orange'];
71_______7_______3_______73
6
1_______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

3
32 và
3
23 để 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
5
8_______5
6
___
$keys = ['sky', 'grass', 'orange'];
0
3
01
$keys = ['sky', 'grass', 'orange'];
2
3
03
$keys = ['sky', 'grass', 'orange'];
4
3
05
$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