Các hàm xử lý mảng trong PHP là một trong những từ khóa được tìm kiếm nhiều nhất trên google về chủ đề Các hàm xử lý mảng trong PHP. Trong bài viết này, coder.com.vn sẽ viết bài Các hàm xử lý mảng trong PHP thông dụng nhất hiện nay
1. Định nghĩa
Một mảng là một cấu trúc dữ liệu mà lưu giữ một hoặc nhiều kiểu giá trị giống nhau trong một giá trị đơn. Nói dễ dàng thì mảng như các dòng xe ô tô, từng dòng xe đưa từng giá trị riêng (value) , được đánh số bằng thứ tự phổ biến trên thị trường (key).
2. Cú pháp
Để xây dựng mảng chúng ta dùng hàm array()
trong PHP (Từ PHP 5..4 trở lên bạn chỉ cần viết giá trị trong cặp dấu [ ] cũng được)
1 2. 3 4. 5. 6. 7 8. | array( key => valuevà key2 => value2, key3 => value3, … ) |
Ví dụ:
1 2 3 4. 5 6 | $cars=array(“Volvo”và“BMW”,“Toyota”); var_dump( $cars ); ?> |
Kết quả bạn có như sau:
1 2 3 4 5. 6 7. | array(3) [0]=> string(5) “Volvo” [1]=> string(3.) “BMW” [2.]=> string(6) “Toyota” |
Như ví dụ trên chúng ta có mảng 3. giá trị. trong đó nó có 3. key đánh số từ [0] đến [2] cho 3 giá trị (dòng xe) tương ứng. Mỗi giá trị bên tại nó sẽ xuất hiện cùng với tên kiểu dữ liệu. Như vậy bạn có thể hiểu, Volvo, BMW, Toyota là giá trị trong mảng $cars
mà ta dump
ra. những key nó sẽ tự động gán khi khởi xây dựng mảng. Để lấy giá trị trong mảng như dự định của mình, chúng ta sẽ lấy ra bằng cách viết tên biến cùng với key cần lấy giá trị như sau:
1 2 3. 4. 5 | echo $cars[2.]; ?> |
3 Các kiểu mảng
3.1. Mảng số nguyên
Một mảng có chỉ mục ở dạng số. Giá trị được lưu trữ , truy xuất tuyến tính. VD:
1 2 3. 4 5 6. 7 8 9. 10 11 12 13 14 15 16 17 18 19 | $numbers = array( 1, 2, 3và 4, 5); foreach( $numbers as $value ) echo “Giá trị phần tử mảng là $value”; /* Phương thức thứ hai để tạo mảng tại PHP. */ $numbers[0] = “Volvo”; $numbers[1] = “BMW”; $numbers[2.] = “Toyota”; $numbers[3.] = “Mazda”; $numbers[4.] = “Kia”; foreach( $numbers as $value ) echo “Giá trị phần tử mảng là $value”; ?> |
KQ:
1 2 3. 4 5 6 7 8. 9 10 11 12 | Giátrịphầntửmảnglà1 Giá trị phần tử mảng là 2. Giá trị phần tử mảng là 3 Giá trị phần tử mảng là 4 Giá trị phần tử mảng là 5 Giá trị phần tử mảng là Volvo Giá trị phần tử mảng là BMW Giá trị phần tử mảng là Toyota Giá trị phần tử mảng là Mazda Giá trị phần tử mảng là Kia |
3..2. Mảng liên hợp
Một mảng với chỉ mục ở dạng chuỗi kí tự. Mảng này lưu giữ những giá trị phần tử bằng sự cộng với các giá trị key thay vì trong một trật tự chỉ mục tuyến tính ngặt nghèo như mảng số nguyên. những mảng liên hợp là khá đồng nghĩa với các mảng số nguyên về tính năng, nhưng chúng khác nhau về chỉ mục. Mảng liên hợp sẽ có chỉ mục ở dạng chuỗi để mà bạn có thể thiết lập một liên kết mạnh giữa key
và value
.
Có thể bạn quan tâm: Back End là gì? Phân biệt giữa Front End, Back End và Full Stack mới nhất 2020
VD:
1 2 3 4. 5 6 7. 8 9. 10 11 12 13 14 15 16 17 18 19 | /* Phương thức thứ nhất để xây dựng mảng liên hợp. */ $dong_xe = array(“volvo” => 3.và “bmw” => 2., “toyota” => 1); echo “Mức độ phổ biến của Volvo là “. $dong_xe[‘volvo’]. “”; echo “Mức độ phổ biến của BMW là “. $dong_xe[‘bmw’]. “”; echo “Mức độ rộng rãi của Toyota là “. $dong_xe[‘toyota’]. “”; /* Phương thức thứ hai để xây dựng mảng liên hợp. */ $dong_xe[‘volvo’] = “low”; $dong_xe[‘bmw’] = “medium”; $dong_xe[‘toyota’] = “high”; echo “Mức độ phổ biến của Volvo là “. $dong_xe[‘volvo’] . “”; echo “Mức độ phổ biến của BMW là “. $dong_xe[‘bmw’]. “”; echo “Mức độ rộng rãi của Toyota là “. $dong_xe[‘toyota’]. “”; ?> |
Kq:
1 2 3. 4. 5 6. 7. 8 | Mức độ phổ biến của Volvo là 3. Mức độ phổ biến của BMW là 2. Mức độ phổ biến của Toyota là 1 Mức độ phổ biến của Volvo là low Mức độ phổ biến của BMW là medium Mức độ phổ biến của Toyota là high |
3..3. Mảng đa chiều
Một mảng chứa một hoặc nhiều mảng và những giá trị được truy xuất bằng cách sử dụng nhiều chỉ mục có nghĩa là mỗi phần tử cũng có thể là một mảng. và mỗi phần tử trong một mảng phụ có khả năng là một mảng, , cứ tiếp tục như vậy. những giá trị tại mảng đa dạng được truy cập bởi dùng nhiều chỉ mục. VD:
1 2 3 4. 5. 6 7 8. 9. 10 11 12 13 14 15 16 17 18 19 2. 2 2 2 2 2 2 2 2. 2. 3 3. 3 3 3. 3 3. | $diemdanhgia=array( “volvo” => array ( “mausac” => 7., “kieudang” => 8.và “tocdo” => 9. )và “bmw” => array ( “mausac” => 7.và “kieudang” => 9.và “tocdo” => 6. ), “toyota” => array ( “mausac” => 8, “kieudang” => 8, “tocdo” => 9 ) ); /* truy cập các giá trị của mảng đa chiều */ echo “Điểm đánh giá sắc màu của Volvo là: ” ; echo$diemdanhgia[‘volvo’][‘mausac’].””; echo “Điểm bình chọn kiểu dáng của BMW là: “; echo$diemdanhgia[‘bmw’][‘kieudang’].””; echo “Điểm đánh giá tốc độ của Toyotalà: ” ; echo $diemdanhgia[‘toyota’][‘tocdo’] . “”; ?> |
KQ:
1 2. 3. 4. 5. | Điểm đánh giá màu sắc của Volvo là: 7. Điểm đánh giá kiểu dáng của BMW là: 9 Điểm đánh giá tốc độ của Toyotalà: 9. |
4 Phép lặp tại mảng
4..1. Phép lặp mảng tuần tự:
Cú pháp:
1 2 3. 4. | foreach($array as $temp) HànhĐộng |
trong đó $array
là mảng mà ta muốn thực thi việc lặp dữ liệu, , $temp
là một biến trong đó ta sẽ tạm thời lưu giữ mỗi phần tử. Ví dụ:
1 2 3. 4. 5 6 7 8. | $cars= array(“Volvo”và “BMW”và “Toyota”); foreach($carsas$car) echo”$car”; ?> |
4.2. Lặp lại qua một mảng kết hợp:
Cú pháp:
1 2 3 4 | foreach($array as $key=>$value) HànhĐộng |
trong số đó $array
là mảng mà ta muốn thực thi việc lặp dữ liệu, $key
là một biến vốn tạm thời chứa mỗi khóa, và $value
là một biến vốn tạm thời chữa mỗi giá trị. Ví dụ:
1 2 3 4. 5 6 7. 8 9 10 11 | $car= array( “ten” =>”Volvo”, “tocdo” =>”230″và “kieudang” =>”co_dien”và “mausac” =>”nau_xam”); foreach($car as $key=>$val) echo “Key: $key. Gia Tri: $val”; ?> |
5. Các hàm xử lý mảng tại PHP
Hàm | miêu tả | PHP |
---|---|---|
array() | xây dựng một mảng | 3. |
array_change_key_case() | Trả về một mảng với tổng cộng key trong dạng chữ hoa hoặc chữ thường hay | 4 |
array_chunk() | Chia một mảng thành một mảng những mảng | 4 |
array_combine() | xây dựng một mảng bởi sử dụng một mảng cho key và mảng khác cho value | 5 |
array_count_values() | Trả về một mảng với số lần hiện diện mỗi value | 4. |
array_diff() | So sánh những value của mảng, , trả về các sự khác nhau | 4. |
array_diff_assoc() | So sánh key , value của mảng, , trả về sự không giống nhau | 4 |
array_diff_key() | So sánh những key của mảng, , trả về những sự khác nhau | 5 |
array_diff_uassoc() | So sánh key và value của mảng, với một hàm kiểm duyệt cung cấp do người sử dụng tạo, , trả về những sự không giống nhau | 5 |
array_diff_ukey() | So sánh key của mảng, với một hàm kiểm tra bổ sung do người dùng xây dựng, , trả về những sự khác nhau | 5 |
array_fill() | Điền value vào một mảng | 4. |
array_fill_keys() | Điền value vào một mảng, chỉ rõ ràng các key | 5 |
array_filter() | Lọc những phần tử của một mảng bởi sử dụng một hàm do người sử dụng tạo | 4 |
array_flip() | bàn thảo tất cả key với value được liên hợp với chúng tại một mảng | 4 |
array_intersect() | So sánh những value trong mảng và trả về những so khớp | 4. |
array_intersect_assoc() | So sánh các key , value trong mảng và trả về các so khớp | 4. |
array_intersect_key() | So sánh những key trong mảng , trả về những so khớp | 5. |
array_intersect_uassoc() | So sánh những key , value trong mảng, với một hàm kiểm duyệt bổ sung do người dùng xây dựng và trả về những so khớp | 5 |
array_intersect_ukey() | So sánh những key trong mảng, với một hàm kiểm tra cung cấp do người dùng tạo , trả về những so khớp | 5 |
array_key_exists() | kiểm tra xem key đã cho có hiện hữu trong mảng không | 4 |
array_keys() | Trả về tất cả key của một mảng | 4. |
array_map() | gửi mỗi value của một mảng tới một hàm do người sử dụng xây dựng, mà trả về những value mới | 4. |
array_merge() | Sáp nhập một hoặc nhiều mảng thành một mảng | 4. |
array_merge_recursive() | Sáp nhập một hoặc nhiều mảng thành một mảng | 4. |
array_multisort() | bố trí các mảng đa chiều | 4 |
array_pad() | Chèn số lượng item đã chọn lựa với một value đã lựa chọn vào một mảng | 4 |
array_pop() | Xóa phần tử cuối cùng của một mảng | 4 |
array_product() | Tính toán tích những value trong một mảng | 5. |
array_push() | Chèn một hoặc nhiều phần tử vào phần cuối của một mảng | 4. |
array_rand() | Trả về một hoặc nhiều key ngẫu nhiên từ một mảng | 4. |
array_reduce() | Trả về một mảng ở dạng string, dùng hàm do người dùng xây dựng | 4 |
array_reverse() | Trả về một mảng với thứ tự bị đảo ngược | 4. |
array_search() | Tìm kiếm một mảng cho một value đã cho và trả về key | 4. |
array_shift() | Gỡ bỏ phần tử đầu tiên từ một mảng, , trả về value của phần tử bị gỡ bỏ | 4 |
array_slice() | Trả về các phần đã chọn của một mảng | 4 |
array_splice() | Gỡ bỏ và thay thế những phần tử đã lựa chọn của một mảng | 4. |
array_sum() | Trả về tổng những value tại một mảng | 4 |
array_udiff() | So sánh những value của mảng tại một hàm do người sử dụng tạo và trả về một mảng | 5 |
array_udiff_assoc() | So sánh những key của mảng, và so sánh những value của mảng tại một hàm do người sử dụng xây dựng, và trả về một mảng | 5 |
array_udiff_uassoc() | So sánh những key và value của mảng trong một hàm do người dùng tạo, , trả về một mảng | 5. |
array_uintersect() | So sánh những value của mảng tại một hàm do người sử dụng tạo, , trả về một mảng | 5 |
array_uintersect_assoc() | So sánh những key của mảng, , so sánh các value của mảng trong một hàm do người sử dụng xây dựng, , trả về một mảng | 5 |
array_uintersect_uassoc() | So sánh các value của mảng trong một hàm do người dùng tạo, , trả về một mảng | 5 |
array_unique() | Gỡ bỏ bản sao các value từ một mảng | 4. |
array_unshift() | Thêm một hoặc phần nhiều tử tới phần đầu của mảng | 4. |
array_values() | Trả về tổng cộng value của một mảng | 4. |
array_walk() | ứng dụng một hàm do người dùng xây dựng tới mỗi thành viên của một mảng | 3. |
array_walk_recursive() | ứng dụng một hàm một cách đệ qui do người dùng tạo tới mỗi thành viên của một mảng | 5. |
arsort() | bố trí một mảng với thứ tự đảo ngược , kéo dài liên kết chỉ mục | 3. |
asort() | sắp xếp một mảng và duy trì liên kết chỉ mục | 3. |
compact() | xây dựng một mảng chứa những biến , những value của chúng | 4. |
count() | Đếm những phần tử tại một mảng, hoặc những tính chất trong một đối tượng mục tiêu | 3 |
current() | Trả về phần tử hiện tại tại một mảng | 3. |
each() | Trả về cặp key và value hiện tại từ một mảng | 3. |
end() | thiết lập con trỏ nội bộ của một mảng tới phần tử sau cuối của nó | 3. |
extract() | Nhập các biến vào tại bảng biểu tượng hiện tại từ một mảng | 3. |
in_array() | kiểm tra nếu như một value đã lựa chọn là tồn tại trong một mảng | 4 |
key() | thu thập một key từ một mảng | 3. |
krsort() | sắp xếp một mảng bằng các key theo thứ tự đảo ngược | 3 |
ksort() | bố trí một mảng bằng các key | 3. |
list() | Gán các biến như nếu chúng là một mảng | 3. |
natcasesort() | sắp đặt một mảng bởi dùng một thuật toán “natural order” không phân biệt kiểu chữ | 4 |
natsort() | sắp xếp một mảng bởi sử dụng một thuật toán “natural order” | 4. |
next() | Tăng con trỏ mảng nội bộ hay trỏ tới phần tử kế tiếp của một mảng | 3. |
pos() | Alias của hàm current() | 3 |
prev() | Giảm con trỏ mảng nội bộ hay trỏ tới phần tử ở trước của một mảng | 3. |
range() | tạo một mảng chứa một phạm vi phần tử | 3 |
reset() | cài đặt con trỏ nội bộ của mảng về phần tử trước tiên của nó | 3 |
rsort() | sắp đặt một mảng theo thứ tự đảo ngược | 3 |
shuffle() | đảo lộn một mảng | 3. |
sizeof() | Alias của hàm count() | 3. |
sort() | sắp đặt một mảng | 3. |
uasort() | sắp đặt một mảng với một hàm do người sử dụng tạo , kéo dài liên kết chỉ mục | 3 |
uksort() | bố trí một mảng bằng các key bởi sử dụng một hàm do người dùng xây dựng | 3. |
usort() | sắp xếp một mảng bằng những value bởi sử dụng một hàm do người dùng tạo | 3 |
Nguồn: https://techtalk.vn/