Làm cách nào để lọc giá trị mảng trong PHP?

Để lọc ra các giá trị từ một mảng và thu được một mảng mới chứa tất cả các giá trị thỏa mãn điều kiện lọc, bạn có thể sử dụng hàm array_filter

Lọc các giá trị không trống

Trường hợp lọc đơn giản nhất là xóa tất cả các giá trị "trống"

$my_array = [1,0,2,null,3,'',4,[],5,6,7,8];
$non_empties = array_filter($my_array); // $non_empties will contain [1,2,3,4,5,6,7,8]; 

Lọc theo gọi lại

Lần này chúng tôi xác định quy tắc lọc của riêng mình. Giả sử chúng ta chỉ muốn lấy các số chẵn

$my_array = [1,2,3,4,5,6,7,8];

$even_numbers = array_filter($my_array, function($number) {
    return $number % 2 === 0;   
});

Hàm array_filter nhận mảng cần lọc làm đối số đầu tiên và hàm gọi lại xác định vị từ bộ lọc làm đối số thứ hai

5. 6

Lọc theo chỉ mục

Tham số thứ ba có thể được cung cấp cho hàm array_filter, cho phép điều chỉnh giá trị nào được chuyển đến hàm gọi lại. Tham số này có thể được đặt thành ARRAY_FILTER_USE_KEY hoặc ARRAY_FILTER_USE_BOTH, điều này sẽ dẫn đến việc gọi lại nhận khóa thay vì giá trị cho từng phần tử trong mảng hoặc cả giá trị và khóa làm đối số của nó. Ví dụ: nếu bạn muốn xử lý các chỉ mục thay vì các giá trị

$numbers = [16,3,5,8,1,4,6];

$even_indexed_numbers = array_filter($numbers, function($index) {
    return $index % 2 === 0;
}, ARRAY_FILTER_USE_KEY);

Chỉ mục trong mảng được lọc

Lưu ý rằng array_filter bảo tồn các khóa mảng ban đầu. Một lỗi phổ biến là thử sử dụng vòng lặp

$my_array = [1,2,3,4,5,6,7,8];

$even_numbers = array_filter($my_array, function($number) {
    return $number % 2 === 0;   
});
1 trên mảng đã lọc

$my_array = [1,2,3,4,5,6,7,8];

$even_numbers = array_filter($my_array, function($number) {
    return $number % 2 === 0;   
});
2), 3 (_______1_______3), 5 (chuỗi rỗng
$my_array = [1,2,3,4,5,6,7,8];

$even_numbers = array_filter($my_array, function($number) {
    return $number % 2 === 0;   
});
4) và 7 (mảng trống
$my_array = [1,2,3,4,5,6,7,8];

$even_numbers = array_filter($my_array, function($number) {
    return $number % 2 === 0;   
});
5) đã bị xóa cùng với các khóa chỉ mục tương ứng của chúng

Nếu bạn cần lặp qua kết quả của bộ lọc trên một mảng được lập chỉ mục, trước tiên bạn nên gọi ________1_____6 về kết quả của ________13_____ để tạo một mảng mới với các chỉ mục chính xác

Hàm array_filter() trong PHP lọc các phần tử của mảng bằng hàm gọi lại và nó có thể được sử dụng cho nhiều mục đích. Hàm array_filter() cung cấp một cách đơn giản và ngắn gọn để lọc mảng nhiều chiều theo khóa và giá trị

Trong đoạn mã ví dụ sau, chúng tôi sẽ chỉ cho bạn cách lọc các giá trị từ mảng đa chiều tương tự như SQL LIKE bằng cách sử dụng hàm array_filter() trong PHP. Sử dụng mã này, bạn có thể lọc các mảng nhiều chiều theo khóa và giá trị cụ thể

$array = array(
    array('name' => 'John Doe', 'email' => '[email protected]'),
    array('name' => 'Marry Lies', 'email' => '[email protected]'),
    array('name' => 'Andrew Joe', 'email' => '[email protected]'),
);

$like = 'jo';

$result = array_filter($array, function ($item) use ($like) {
    if (stripos($item['name'], $like) !== false) {
        return true;
    }
    return false;
});

Đoạn mã trên trả về mảng đã lọc

Array
(
    [0] => Array
        (
            [name] => John Doe
            [email] => [email protected]
        )

    [2] => Array
        (
            [name] => Andrew Joe
            [email] => [email protected]
        )

)

Hàm PHP array_filter() lọc các phần tử của một mảng bằng cách sử dụng hàm gọi lại và trả về mảng đã lọc. Ở đây chúng tôi sẽ cung cấp các đoạn mã PHP ngắn để lọc các phần tử của một mảng chứa một giá trị cụ thể. Nó sẽ giúp bạn lọc một mảng dựa trên điều kiện cụ thể

Đoạn mã ví dụ sau sẽ lọc các phần tử của một mảng theo giá trị bằng cách sử dụng các hàm array_filter()strpos() trong PHP

$array = array(
    'month' => 'January',
    'month2' => 'February',
    'month3' => 'March'
);

$filterArray = array_filter($array, function ($var) {
    return (strpos($var, 'Jan') === false);
});

// Output the filtered array
print_r($filterArray);

Làm cách nào để tìm kiếm một giá trị trong một mảng trong PHP?

Hàm PHP in_array() . Ghi chú. Nếu tham số tìm kiếm là một chuỗi và tham số loại được đặt thành TRUE, tìm kiếm sẽ phân biệt chữ hoa chữ thường.

Làm cách nào để sắp xếp các giá trị mảng trong PHP?

PHP - Hàm sắp xếp cho mảng .
sort() - sắp xếp mảng theo thứ tự tăng dần
rsort() - sắp xếp mảng theo thứ tự giảm dần
asort() - sắp xếp các mảng kết hợp theo thứ tự tăng dần, theo giá trị
ksort() - sắp xếp các mảng kết hợp theo thứ tự tăng dần, theo khóa

Làm cách nào để lọc dữ liệu trong PHP?

Hàm PHP filter_var() . Hàm filter_var() lọc một biến duy nhất bằng một bộ lọc được chỉ định. Phải mất hai phần dữ liệu. Biến bạn muốn kiểm tra.

Làm cách nào để lọc một mảng từ tất cả các phần tử của một mảng khác trong PHP?

Để lọc mảng này khỏi tất cả các phần tử của mảng khác, dùng filter() .

Làm cách nào để lọc mảng nhiều chiều theo giá trị khóa trong PHP?

PHP array_filter() lọc các phần tử của một mảng bằng hàm gọi lại và hàm này có thể được sử dụng cho nhiều mục đích. Hàm array_filter() cung cấp một cách đơn giản và ngắn gọn để lọc mảng nhiều chiều theo khóa và giá trị.