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.