Array Filter Funktion von PHP:
array_filter ( $array, $callback_function, $flag )
$ array - Dies ist das Eingabearray
$ callback_function - Die zu verwendende Rückruffunktion , Wenn die Rückruffunktion true zurückgibt , wird der aktuelle Wert aus dem Array in das Ergebnisarray zurückgegeben.
$ flag - Dies ist ein optionaler Parameter , der bestimmt, welche Argumente an die Rückruffunktion gesendet werden. Wenn dieser Parameter leer ist, verwendet die Rückruffunktion Array-Werte als Argument. Wenn Sie einen Array-Schlüssel als Argument senden möchten, verwenden Sie $ flag als ARRAY_FILTER_USE_KEY . Wenn Sie sowohl Schlüssel als auch Werte senden möchten, sollten Sie $ flag als ARRAY_FILTER_USE_BOTH verwenden .
Zum Beispiel: Betrachten Sie ein einfaches Array
$array = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
Wenn Sie ein Array basierend auf dem Array-Schlüssel filtern möchten , müssen Sie ARRAY_FILTER_USE_KEY als dritten Parameter der Array-Funktion array_filter verwenden.
$get_key_res = array_filter($array,"get_key",ARRAY_FILTER_USE_KEY );
Wenn Sie das Array basierend auf dem Array-Schlüssel und dem Array-Wert filtern möchten , müssen Sie ARRAY_FILTER_USE_BOTH als dritten Parameter der Array-Funktion array_filter verwenden.
$get_both = array_filter($array,"get_both",ARRAY_FILTER_USE_BOTH );
Beispiel für Rückruffunktionen:
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;
}
}
Es wird ausgegeben
Output of $get_key is :Array ( [a] => 1 )
Output of $get_both is :Array ( [a] => 1 )
$b = ['foo' => $a['foo'], 'bar' => $a['bar']]
Dies wird zur Folge haben$b['bar']
seinull
.