ฟังก์ชันตัวกรองอาร์เรย์จาก php:
array_filter ( $array, $callback_function, $flag )
$ array - มันเป็นอาร์เรย์อินพุต
$ callback_function - ฟังก์ชั่นการโทรกลับที่จะใช้, หากฟังก์ชั่นการโทรกลับส่งกลับจริงค่าปัจจุบันจากอาร์เรย์จะถูกส่งกลับเข้าไปในอาร์เรย์ผล
$ flag - มันเป็นพารามิเตอร์ตัวเลือกมันจะกำหนดว่าข้อโต้แย้งที่ถูกส่งไปยังฟังก์ชั่นการโทรกลับ หากพารามิเตอร์นี้ว่างเปล่าฟังก์ชันการเรียกกลับจะใช้ค่าอาร์เรย์เป็นอาร์กิวเมนต์ หากคุณต้องการที่จะส่งคีย์อาร์เรย์เป็นอาร์กิวเมนต์แล้วใช้ $ ธงเป็นARRAY_FILTER_USE_KEY หากคุณต้องการที่จะส่งกุญแจทั้งสองและค่าที่คุณควรใช้ $ ธงเป็นARRAY_FILTER_USE_BOTH
ตัวอย่าง: พิจารณาอาร์เรย์ที่เรียบง่าย
$array = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
หากคุณต้องการกรองอาร์เรย์ตามคีย์อาร์เรย์เราจำเป็นต้องใช้ARRAY_FILTER_USE_KEYเป็นพารามิเตอร์ตัวที่สามของฟังก์ชันอาร์เรย์ array_filter
$get_key_res = array_filter($array,"get_key",ARRAY_FILTER_USE_KEY );
หากคุณต้องการกรองอาร์เรย์ตามคีย์อาร์เรย์และค่าอาร์เรย์เราต้องใช้ARRAY_FILTER_USE_BOTHเป็นพารามิเตอร์ตัวที่สามของฟังก์ชันอาร์เรย์ array_filter
$get_both = array_filter($array,"get_both",ARRAY_FILTER_USE_BOTH );
ฟังก์ชั่นการโทรกลับตัวอย่าง:
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;
}
}
มันจะออก
Output of $get_key is :Array ( [a] => 1 )
Output of $get_both is :Array ( [a] => 1 )
$b = ['foo' => $a['foo'], 'bar' => $a['bar']]
นี้จะมีผลในพ.ศ.$b['bar']
null