función de filtro de matriz de php:
array_filter ( $array, $callback_function, $flag )
$ array: es la matriz de entrada
$ callback_function: la función de devolución de llamada que se utilizará, si la función de devolución de llamada devuelve verdadero , el valor actual de la matriz se devuelve a la matriz de resultados.
$ flag: es un parámetro opcional , determinará qué argumentos se envían a la función de devolución de llamada. Si este parámetro está vacío, la función de devolución de llamada tomará los valores de la matriz como argumento. Si desea enviar una clave de matriz como argumento, use $ flag como ARRAY_FILTER_USE_KEY . Si desea enviar claves y valores, debe usar $ flag como ARRAY_FILTER_USE_BOTH .
Por ejemplo: considere una matriz simple
$array = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
Si desea filtrar la matriz en función de la clave de la matriz , necesitamos usar ARRAY_FILTER_USE_KEY como tercer parámetro de la función de matriz array_filter.
$get_key_res = array_filter($array,"get_key",ARRAY_FILTER_USE_KEY );
Si desea filtrar la matriz en función de la clave de la matriz y el valor de la matriz , necesitamos utilizar ARRAY_FILTER_USE_BOTH como tercer parámetro de la función de matriz array_filter.
$get_both = array_filter($array,"get_both",ARRAY_FILTER_USE_BOTH );
Funciones de devolución de llamada de muestra:
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;
}
}
Saldrá
Output of $get_key is :Array ( [a] => 1 )
Output of $get_both is :Array ( [a] => 1 )
$b = ['foo' => $a['foo'], 'bar' => $a['bar']]
Esto resultará en$b['bar']
sernull
.