Trong phần này, chúng ta sẽ tìm hiểu tìm kiếm mảng nhiều chiều bằng cách sử dụng giá trị. Chúng tôi sẽ sử dụng PHP để làm điều này. Nếu chúng ta chưa biết về mảng nhiều chiều trong PHP thì ví dụ này sẽ rất hữu ích cho chúng ta. Trong ví dụ dưới đây của chúng tôi, chúng tôi sẽ sử dụng giá trị để tìm kiếm khóa của một mảng nhiều chiều. Nếu chúng ta muốn lấy giá trị từ một mảng nhiều chiều, chúng ta có thể dễ dàng thực hiện việc này bằng cách tìm kiếm giá trị khóa trong mảng
Trong ví dụ của chúng tôi, chúng tôi sẽ sử dụng một mảng đơn giản để giải thích ví dụ này. Chúng ta sẽ sử dụng hai mảng có tên là $students và $studentsAddress. Trong mảng $students của chúng ta, chúng ta sẽ sử dụng vòng lặp foreach. Trong mảng $studentsAddress của chúng tôi, chúng tôi cũng muốn hiển thị địa chỉ. Nhưng chúng tôi gặp sự cố vì ví dụ của chúng tôi có khóa user_id chứa một số bản ghi và id mảng đầu tiên. Để giải quyết vấn đề này, chúng ta sẽ sử dụng array_column[] và hàm của array_column
Mã đơn giản để tìm kiếm giá trị trong mảng nhiều chiều được mô tả như sau
Ví dụ đầy đủ để tìm kiếm giá trị trong mảng nhiều chiều được mô tả như sau
Thí dụ
Bây giờ mã trên của chúng tôi đã sẵn sàng và chúng tôi có thể chạy nó. Khi chúng tôi chạy cái này, đầu ra sau sẽ được tạo
Trong PHP, tìm kiếm mảng đa chiều đề cập đến việc tìm kiếm một giá trị trong một mảng lồng nhau nhiều cấp độ. Có nhiều kỹ thuật khác nhau để thực hiện kiểu tìm kiếm này, chẳng hạn như lặp qua các mảng lồng nhau, cách tiếp cận đệ quy và các hàm tìm kiếm mảng sẵn có
Phương pháp lặp lại.
Lặp lại mảng và tìm kiếm kết quả khớp quan trọng là cách tiếp cận đơn giản nhất mà người ta có thể làm theo. Kiểm tra xem một phần tử của mảng đã cho có phải là một mảng hay không và thêm phần tử vào đường dẫn tìm kiếm, nếu không thì chạy tìm kiếm mảng trên mảng lồng nhau.
Thí dụ
$ --> school3 --> data --> name64
$ --> school3 --> data --> name65
$ --> school3 --> data --> name66
$ --> school3 --> data --> name66
$ --> school3 --> data --> name68
$ --> school3 --> data --> name69
$ --> school3 --> data --> name70
$ --> school3 --> data --> name0
$ --> school3 --> data --> name1
$ --> school3 --> data --> name2
$ --> school3 --> data --> name1
$ --> school3 --> data --> name4
$ --> school3 --> data --> name5
$ --> school3 --> data --> name66
$ --> school3 --> data --> name7
$ --> school3 --> data --> name8
$ --> school3 --> data --> name7__
10
11
$ --> school3 --> data --> name2
13
14
15
16
$ --> school3 --> data --> name5
$ --> school3 --> data --> name66
19
$ --> school3 --> data --> name640
$ --> school3 --> data --> name641
$ --> school3 --> data --> name4
$ --> school3 --> data --> name643
$ --> school3 --> data --> name644
_______99____3646
19
$ --> school3 --> data --> name648
11
$ --> school3 --> data --> name640
$ --> school3 --> data --> name1
14
$ --> school3 --> data --> name653
$ --> school3 --> data --> name66
_______99____3656
_______99____3658
19
$ --> school3 --> data --> name660
11
$ --> school3 --> data --> name662
11
16______3665
$ --> school3 --> data --> name666
$ --> school3 --> data --> name667
11
16
$ --> school3 --> data --> name660
$ --> school3 --> data --> name66
$ --> school3 --> data --> name662
$ --> school3 --> data --> name663
$ --> school3 --> data --> name662
10
11_______96
13
$ --> school3 --> data --> name669
15
$ --> school3 --> data --> name681
$ --> school3 --> data --> name5
$ --> school3 --> data --> name66
$ --> school3 --> data --> name684
$ --> school3 --> data --> name660
11____3681
$ --> school3 --> data --> name688
$ --> school3 --> data --> name0
$ --> school3 --> data --> name5
$ --> school3 --> data --> name691
$ --> school3 --> data --> name692
$ --> school3 --> data --> name646
$ --> school3 --> data --> name692
$ --> school3 --> data --> name648
11____3640
$ --> school3 --> data --> name1
$ --> school3 --> data --> name669
$ --> school3 --> data --> name653
$ --> school3 --> data --> name691
$ --> school3 --> data --> name692
$ --> school3 --> data --> name703
$ --> school3 --> data --> name704
$ --> school3 --> data --> name705
$ --> school3 --> data --> name1
$ --> school3 --> data --> name640
$ --> school3 --> data --> name653
$ --> school3 --> data --> name684
$ --> school3 --> data --> name00
$ --> school3 --> data --> name662
$ --> school3 --> data --> name00
19
$ --> school3 --> data --> name00
$ --> school3 --> data --> name644
19
$ --> school3 --> data --> name07
11
16
$ --> school3 --> data --> name688
$ --> school3 --> data --> name0
$ --> school3 --> data --> name5
$ --> school3 --> data --> name662
$ --> school3 --> data --> name703
$ --> school3 --> data --> name704
$ --> school3 --> data --> name705
$ --> school3 --> data --> name1
$ --> school3 --> data --> name640
$ --> school3 --> data --> name653
19
$ --> school3 --> data --> name00
$ --> school3 --> data --> name7
$ --> school3 --> data --> name00
$ --> school3 --> data --> name24
$ --> school3 --> data --> name7____3703
$ --> school3 --> data --> name27
$ --> school3 --> data --> name00
$ --> school3 --> data --> name66
$ --> school3 --> data --> name30
$ --> school3 --> data --> name31
$ --> school3 --> data --> name641____033
11
$ --> school3 --> data --> name7____033
11
19
$ --> school3 --> data --> name39
15
$ --> school3 --> data --> name41
$ --> school3 --> data --> name1
19
$ --> school3 --> data --> name44
15
$ --> school3 --> data --> name46
$ --> school3 --> data --> name1
19
$ --> school3 --> data --> name49
15
$ --> school3 --> data --> name51
$ --> school3 --> data --> name7____053
$ --> school3 --> data --> name7____033
11
19
$ --> school3 --> data --> name39
15
$ --> school3 --> data --> name60
$ --> school3 --> data --> name1
19
$ --> school3 --> data --> name44
15
$ --> school3 --> data --> name65
$ --> school3 --> data --> name1
19
$ --> school3 --> data --> name49
15
$ --> school3 --> data --> name70
$ --> school3 --> data --> name7____053
$ --> school3 --> data --> name7____033
11
19
$ --> school3 --> data --> name39
15
$ --> school3 --> data --> name79
$ --> school3 --> data --> name1
19
$ --> school3 --> data --> name44
15
$ --> school3 --> data --> name84
$ --> school3 --> data --> name1
19
$ --> school3 --> data --> name49
15
$ --> school3 --> data --> name89
$ --> school3 --> data --> name7____3665
$ --> school3 --> data --> name653
$ --> school3 --> data --> name66
$ --> school3 --> data --> name94
$ --> school3 --> data --> name95
$ --> school3 --> data --> name70
$ --> school3 --> data --> name1
$ --> school3 --> data --> name692
$ --> school3 --> data --> name31
$ --> school3 --> data --> name1
$ --> school3 --> data --> name33
11
103
104
$ --> school3 --> data --> name66
106
11____094
$ --> school3 --> data --> name653
$ --> school3 --> data --> name66
111
đầu ra.
$ --> school3 --> data --> name37
Phương pháp đệ quy.
Trong trường hợp, khi mức độ của các mảng lồng nhau tăng lên, sẽ rất khó để viết các chương trình như vậy và gỡ lỗi chúng. Trong những trường hợp như vậy, tốt hơn là viết một chương trình đệ quy có thể được viết rõ ràng mà không cần thêm bất kỳ vòng lặp for lồng nhau nào.
Thí dụ
$ --> school3 --> data --> name64
$ --> school3 --> data --> name65
$ --> school3 --> data --> name66
$ --> school3 --> data --> name66
116
$ --> school3 --> data --> name69
118
$ --> school3 --> data --> name0
$ --> school3 --> data --> name1
$ --> school3 --> data --> name2
$ --> school3 --> data --> name1
$ --> school3 --> data --> name4
$ --> school3 --> data --> name5
$ --> school3 --> data --> name24
$ --> school3 --> data --> name7______3660______91
$ --> school3 --> data --> name662
11
$ --> school3 --> data --> name2
132
$ --> school3 --> data --> name667
11
$ --> school3 --> data --> name2
136
$ --> school3 --> data --> name644
19
10
11
$ --> school3 --> data --> name2
13
143
15
145
$ --> school3 --> data --> name5
$ --> school3 --> data --> name66
$ --> school3 --> data --> name662
$ --> school3 --> data --> name640
$ --> school3 --> data --> name641
$ --> school3 --> data --> name4
$ --> school3 --> data --> name643
153
$ --> school3 --> data --> name662
$ --> school3 --> data --> name646
$ --> school3 --> data --> name662
$ --> school3 --> data --> name648
11____3640
$ --> school3 --> data --> name1
143
$ --> school3 --> data --> name653
$ --> school3 --> data --> name66
$ --> school3 --> data --> name662
$ --> school3 --> data --> name656
$ --> school3 --> data --> name662
$ --> school3 --> data --> name658
$ --> school3 --> data --> name662
$ --> school3 --> data --> name660
11
$ --> school3 --> data --> name662
11
145
132
$ --> school3 --> data --> name667
11
145
136
$ --> school3 --> data --> name684____980
181
182
$ --> school3 --> data --> name0
$ --> school3 --> data --> name1
145
$ --> school3 --> data --> name1
$ --> school3 --> data --> name640
$ --> school3 --> data --> name653
$ --> school3 --> data --> name66
$ --> school3 --> data --> name684
$ --> school3 --> data --> name660
11______980
194
$ --> school3 --> data --> name692
$ --> school3 --> data --> name703
180
$ --> school3 --> data --> name643
$ --> school3 --> data --> name684
$ --> school3 --> data --> name00
$ --> school3 --> data --> name662
$ --> school3 --> data --> name00
$ --> school3 --> data --> name662
$ --> school3 --> data --> name6404
$ --> school3 --> data --> name660____91
145
$ --> school3 --> data --> name688
$ --> school3 --> data --> name0
$ --> school3 --> data --> name5
$ --> school3 --> data --> name684
$ --> school3 --> data --> name703
$ --> school3 --> data --> name704
$ --> school3 --> data --> name705
$ --> school3 --> data --> name1
$ --> school3 --> data --> name640
$ --> school3 --> data --> name653
$ --> school3 --> data --> name662
$ --> school3 --> data --> name00
19
$ --> school3 --> data --> name00
$ --> school3 --> data --> name7
$ --> school3 --> data --> name00
$ --> school3 --> data --> name24
$ --> school3 --> data --> name7____3703
$ --> school3 --> data --> name27
$ --> school3 --> data --> name00
$ --> school3 --> data --> name66
$ --> school3 --> data --> name6430
$ --> school3 --> data --> name31
$ --> school3 --> data --> name641____033
11
$ --> school3 --> data --> name7____36436
15
$ --> school3 --> data --> name33
11
19
$ --> school3 --> data --> name6441
15
$ --> school3 --> data --> name6443
$ --> school3 --> data --> name1
19
$ --> school3 --> data --> name6446
15
$ --> school3 --> data --> name33
11
$ --> school3 --> data --> name662
$ --> school3 --> data --> name39
15
$ --> school3 --> data --> name41
$ --> school3 --> data --> name1
$ --> school3 --> data --> name662
$ --> school3 --> data --> name44
15
$ --> school3 --> data --> name46
$ --> school3 --> data --> name1
$ --> school3 --> data --> name662
$ --> school3 --> data --> name49
15
$ --> school3 --> data --> name51
_______99____3665
$ --> school3 --> data --> name7____053
$ --> school3 --> data --> name24
$ --> school3 --> data --> name7____36470
15
$ --> school3 --> data --> name33
11
19
$ --> school3 --> data --> name6441
15
$ --> school3 --> data --> name6477
$ --> school3 --> data --> name1
19
$ --> school3 --> data --> name6446
15
$ --> school3 --> data --> name33
11
$ --> school3 --> data --> name662
$ --> school3 --> data --> name39
15
$ --> school3 --> data --> name60
$ --> school3 --> data --> name1
$ --> school3 --> data --> name662
$ --> school3 --> data --> name44
15
$ --> school3 --> data --> name65
$ --> school3 --> data --> name1
$ --> school3 --> data --> name662
$ --> school3 --> data --> name49
15
$ --> school3 --> data --> name70
_______99____3665
$ --> school3 --> data --> name7____053
$ --> school3 --> data --> name24
$ --> school3 --> data --> name7____36504
15
$ --> school3 --> data --> name33
11
19
$ --> school3 --> data --> name6441
15
$ --> school3 --> data --> name6477
$ --> school3 --> data --> name1
19
$ --> school3 --> data --> name6446
15
$ --> school3 --> data --> name33
11
$ --> school3 --> data --> name662
$ --> school3 --> data --> name39
15
$ --> school3 --> data --> name79
$ --> school3 --> data --> name1
$ --> school3 --> data --> name662
$ --> school3 --> data --> name44
15
$ --> school3 --> data --> name84
$ --> school3 --> data --> name1
$ --> school3 --> data --> name662
$ --> school3 --> data --> name49
15
$ --> school3 --> data --> name89
_______99____3665
$ --> school3 --> data --> name7____3665
$ --> school3 --> data --> name653
$ --> school3 --> data --> name66
$ --> school3 --> data --> name94
181______084
$ --> school3 --> data --> name1
$ --> school3 --> data --> name31
$ --> school3 --> data --> name1
$ --> school3 --> data --> name33
11
103
104
106
11____094
$ --> school3 --> data --> name653
$ --> school3 --> data --> name66
111
đầu ra.
$ --> school3 --> data --> name
Tìm kiếm mảng đa chiều sử dụng phương thức array_search[].
Array_search[] là một hàm sẵn có để tìm kiếm một giá trị nhất định liên quan đến cột/khóa mảng đã cho. Hàm này chỉ trả về chỉ mục khóa thay vì đường dẫn tìm kiếm. Hàm array_column[] trả về các giá trị từ một cột duy nhất trong mảng đầu vào.
Thí dụ
$ --> school3 --> data --> name64
$ --> school3 --> data --> name65
$ --> school3 --> data --> name66
$ --> school3 --> data --> name66
$ --> school3 --> data --> name6558
$ --> school3 --> data --> name31
$ --> school3 --> data --> name641____033
11
$ --> school3 --> data --> name7____033
11
19
$ --> school3 --> data --> name39
15
$ --> school3 --> data --> name41
$ --> school3 --> data --> name1
19
$ --> school3 --> data --> name44
15
$ --> school3 --> data --> name46
$ --> school3 --> data --> name1
19
$ --> school3 --> data --> name49
15
$ --> school3 --> data --> name51
$ --> school3 --> data --> name7____053
$ --> school3 --> data --> name7____033
11
19
$ --> school3 --> data --> name39
15
$ --> school3 --> data --> name60
$ --> school3 --> data --> name1
19
$ --> school3 --> data --> name44
15
$ --> school3 --> data --> name65
$ --> school3 --> data --> name1
19
$ --> school3 --> data --> name49
15
$ --> school3 --> data --> name70
$ --> school3 --> data --> name7____053
$ --> school3 --> data --> name7____033
11
19
$ --> school3 --> data --> name39
15
$ --> school3 --> data --> name79
$ --> school3 --> data --> name1
19
$ --> school3 --> data --> name44
15
$ --> school3 --> data --> name84
$ --> school3 --> data --> name1
19
$ --> school3 --> data --> name49
15
$ --> school3 --> data --> name89
$ --> school3 --> data --> name7____3665
$ --> school3 --> data --> name653
$ --> school3 --> data --> name66
$ --> school3 --> data --> name6622
$ --> school3 --> data --> name641
$ --> school3 --> data --> name6624
11
$ --> school3 --> data --> name60
$ --> school3 --> data --> name6627
$ --> school3 --> data --> name31
$ --> school3 --> data --> name1
$ --> school3 --> data --> name39
104
$ --> school3 --> data --> name6632
$ --> school3 --> data --> name6622____3643
$ --> school3 --> data --> name66
111
đầu ra.
1
PHP là ngôn ngữ kịch bản phía máy chủ được thiết kế dành riêng cho phát triển web. Bạn có thể học PHP từ đầu bằng cách làm theo Hướng dẫn PHP và Ví dụ về PHP này