função de filtro de matriz do php:
array_filter ( $array, $callback_function, $flag )
$ array - É o array de entrada
$ callback_function - A função de retorno de chamada a ser usada , Se a função de retorno de chamada retornar verdadeiro , o valor atual da matriz será retornado para a matriz de resultados.
$ flag - É um parâmetro opcional , determinará quais argumentos serão enviados para a função de retorno de chamada. Se esse parâmetro estiver vazio, a função de retorno de chamada assumirá os valores da matriz como argumento. Se você deseja enviar a chave da matriz como argumento, use $ flag como ARRAY_FILTER_USE_KEY . Se você deseja enviar chaves e valores, use $ flag como ARRAY_FILTER_USE_BOTH .
Por exemplo: considere uma matriz simples
$array = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
Se você deseja filtrar a matriz com base na chave da matriz , precisamos usar ARRAY_FILTER_USE_KEY como terceiro parâmetro da função da matriz array_filter.
$get_key_res = array_filter($array,"get_key",ARRAY_FILTER_USE_KEY );
Se você deseja filtrar a matriz com base na chave e no valor da matriz , precisamos usar ARRAY_FILTER_USE_BOTH como terceiro parâmetro da função da matriz array_filter.
$get_both = array_filter($array,"get_both",ARRAY_FILTER_USE_BOTH );
Funções de amostra de retorno de chamada:
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;
}
}
Vai sair
Output of $get_key is :Array ( [a] => 1 )
Output of $get_both is :Array ( [a] => 1 )
$b = ['foo' => $a['foo'], 'bar' => $a['bar']]
Isto irá resultar em$b['bar']
sejanull
.