PHP array_filter()
Hàm array_filter() trong PHP
Hàm array_filter() trong PHP được sử dụng để lọc các phần tử trong một mảng. Hàm này cho phép bạn loại bỏ các phần tử không cần thiết dựa trên một điều kiện nhất định mà bạn thiết lập thông qua một hàm callback.
Cú pháp
array_filter(array &$array, callable $callback = null, int $mode = 0): array
Tham số
- array: Mảng cần phải lọc.
- callback: Hàm callback được gọi cho từng phần tử của mảng. Nếu không chỉ định, hàm sẽ loại bỏ các giá trị tương đương với
false
(như0
,null
, chuỗi rỗng,...). - mode: Tùy chọn, xác định cách mà hàm callback nhận các tham số (giá trị chỉ định
ARRAY_FILTER_USE_BOTH
để truyền cả khóa và giá trị).
Giá trị trả về
Hàm array_filter() trả về một mảng mới chỉ chứa các phần tử thỏa mãn điều kiện trong hàm callback.
Ví dụ sử dụng
$input = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; $output = array_filter($input, function($value) { return $value % 2 == 0; // Chọn các số chẵn }); print_r($output);
Kết quả
Array ( [1] => 2 [3] => 4 [5] => 6 [7] => 8 )
Trong ví dụ trên, hàm array_filter() đã loại bỏ các số lẻ và chỉ giữ lại các số chẵn trong mảng đầu vào.
Sử dụng với ARRAY_FILTER_USE_BOTH
$input = [ "a" => 1, "b" => 2, "c" => 3, "d" => 4 ]; $output = array_filter($input, function($value, $key) { return $key === 'b' || $value % 2 == 0; // Giữ lại key 'b' và các số chẵn }, ARRAY_FILTER_USE_BOTH); print_r($output);
Kết quả
Array ( [b] => 2 [d] => 4 )
Hàm array_filter() rất hữu ích khi bạn cần lọc dữ liệu mà không cần tạo một vòng lặp phức tạp.