array_filter trong php là một trong những hàm xử lú mảng có sẵn trong PHP cho phép bạn lọc các phần tử của một mảng dựa trên một điều kiện cụ thể. Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng array_filter()
, ví dụ và các trường hợp sử dụng phổ biến.
Hàm array_filter trong PHP – Cú pháp cơ bản
Hàm array_filter() trong PHP có cú pháp cơ bản như sau:
array_filter(array $array, callable $callback = null, int $flag = 0): array
Trong đó:
$array
: Mảng ban đầu bạn muốn lọc.$callback
: Một hàm callback tùy chọn được sử dụng để xác định điều kiện lọc. Nếu không được cung cấp, các giá trị rỗng sẽ bị loại bỏ (0, false, ”, null).$flag
: Các cờ tùy chọn.
>>XEM THÊM: Hàm array_search trong PHP – Tìm kiếm phần tử mảng (trả về key)
Ví dụ sử dụng đơn giản
Hãy xem xét ví dụ đơn giản dưới đây để hiểu cách array_filter
hoạt động.
Ví dụ 1: Lọc ra các phần tử giá trị không rỗng(loại bỏ các phần tử rỗng).
$data = [1, 2, 3, null, '', 0, 4];
$filteredData = array_filter($data);
// Kết quả: [1, 2, 3, 4]
Lưu ý:array_filter
mặc định loại bỏ các giá trị rỗng khi không có hàm callback được cung cấp.
Ví dụ 2: Lọc trong mảng kết hợp (associative arrays) (Mảng object)
$students = [
['name' => 'Alice', 'age' => 25],
['name' => 'Bob', 'age' => 22],
['name' => 'Charlie', 'age' => 30],
];
$adultStudents = array_filter($students, function($student) {
return $student['age'] >= 18;
});
// Kết quả:
// [
// ['name' => 'Alice', 'age' => 25],
// ['name' => 'Bob', 'age' => 22],
// ['name' => 'Charlie', 'age' => 30],
// ]
>>XEM THÊM: Hướng dẫn hàm array_map trong PHP – Lập trình PHP cơ bản
Ví dụ 3: Lọc các phần tử lớn hơn 10 trong mảng
<?php
$numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
$evenNumbers = array_filter($numbers, function ($number) {
return $number > 10;
});
print_r($evenNumbers);
Kết quả:
Array (
[10] => 11
[11] => 12
[12] => 13
[13] => 14
[14] => 15
[15] => 16
)
Ví dụ 4: Lọc các phần tử là số chẵn trong mảng
<?php
$numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
$evenNumbers = array_filter($numbers, function ($number) {
return $number % 2 == 0;
});
print_r($evenNumbers);
Kết quả:
Array (
[1] => 2
[3] => 4
[5] => 6
[7] => 8
[9] => 10
[11] => 12
[13] => 14
[15] => 16
)
>>XEM THÊM: Hàm array_values trong PHP – Đặt lại khóa tất cả phần tử mảng
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu cách sử dụng array_filter
trong PHP để lọc mảng dựa trên các điều kiện cụ thể. Điều này giúp bạn tạo ra các mảng con chỉ chứa các phần tử mong muốn. Hy vọng rằng bạn đã hiểu rõ về cách sử dụng array_filter
và có thể áp dụng nó vào thực tế.
Nếu bạn có bất kỳ câu hỏi hoặc góp ý, để lại bình luận bên dưới mọi người cùng trao đổi nhé!
[XEM TẤT CẢ BÀI VIẾT CHUYÊN MỤC HƯỚNG DẪN PHP TẠI ĐÂY]
XEM THÊM Hàm in_array trong php – Kiểm tra giá trị có tồn tại trong mảng Hàm array_search trong PHP – Tìm kiếm phần tử mảng (trả về key) Hàm array_fill trong PHP – Tạo và điền n phần tử cụ thể vào mảng