chức năng lọc mảng từ php:
array_filter ( $array, $callback_function, $flag )
$ mảng - Đây là mảng đầu vào
$ callback_function - Hàm gọi lại để sử dụng , Nếu hàm gọi lại trả về true , giá trị hiện tại từ mảng được trả về mảng kết quả.
$ flag - Đây là tham số tùy chọn , nó sẽ xác định đối số nào được gửi đến hàm gọi lại. Nếu tham số này trống thì hàm gọi lại sẽ lấy giá trị mảng làm đối số. Nếu bạn muốn gửi khóa mảng làm đối số thì hãy sử dụng cờ $ dưới dạng ARRAY_FILTER_USE_KEY . Nếu bạn muốn gửi cả khóa và giá trị, bạn nên sử dụng cờ $ dưới dạng ARRAY_FILTER_USE_BOTH .
Ví dụ: Xem xét mảng đơn giản
$array = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
Nếu bạn muốn lọc mảng dựa trên khóa mảng , chúng ta cần sử dụng ARRAY_FILTER_USE_KEY làm tham số thứ ba của hàm mảng Array_filter.
$get_key_res = array_filter($array,"get_key",ARRAY_FILTER_USE_KEY );
Nếu bạn muốn lọc mảng dựa trên khóa mảng và giá trị mảng , Chúng ta cần sử dụng ARRAY_FILTER_USE_BOTH làm tham số thứ ba của hàm mảng Array_filter.
$get_both = array_filter($array,"get_both",ARRAY_FILTER_USE_BOTH );
Các hàm gọi lại mẫu:
function get_key($key)
{
if($key == 'a')
{
return true;
} else {
return false;
}
}
function get_both($val,$key)
{
if($key == 'a' && $val == 1)
{
return true;
} else {
return false;
}
}
Nó sẽ xuất
Output of $get_key is :Array ( [a] => 1 )
Output of $get_both is :Array ( [a] => 1 )
$b = ['foo' => $a['foo'], 'bar' => $a['bar']]
này sẽ dẫn đến$b['bar']
benull
.