Os dados da matriz podem ser filtrados iterando os elementos da matriz com o loop no PHP. Esta tarefa pode ser feita com muita facilidade usando a função Array_filter (). A função de retorno de chamada definida pelo usuário é usada nesta função para filtrar os dados. A matriz retornada por esta função preservou a chave da matriz original. Diferentes usos da função Array_filter () foram mostrados neste tutorial.
Sintaxe:
A sintaxe do Array_filter () é dada abaixo.
Array Array_filter ($ Array, $ callback_function, $ flag)
- O primeiro argumento da função é obrigatório e contém uma matriz e será usado para filtrar.
- O segundo argumento é opcional e é uma função de retorno de chamada usada para filtrar os dados da matriz.
- O terceiro argumento é opcional e pode armazenar dois tipos de valores. Um valor é Array_filter_use_key, que passa a chave da matriz como o argumento na função de retorno de chamada. Outro valor pode ser array_filter_use_both, que passa a chave e o valor como o argumento da função de retorno de chamada.
- Ele retorna a matriz filtrada.
Diferentes usos das funções Array_filter () foram mostrados na próxima parte do tutorial.
Exemplo 1: filtre uma matriz numérica
Crie um arquivo php com o seguinte script para filtrar os valores da matriz com base em uma condição. A matriz declarada no script contém valores positivos, negativos e zero. A função Array_filter () foi usada no script para recuperar os valores negativos da matriz. Em seguida, a matriz filtrada foi impressa.
// declarar uma variedade numérica de números positivos, negativos e zero
$ array = [78, -56, 45, 0, -33, 59, -21];
// Crie uma nova variedade de números negativos
$ filtro_array = array_filter ($ array,
função ($ a)
retornar $ a < 0;
);
// Imprima a nova matriz
eco "números negativos da matriz são:
";
foreach ($ filter_array como $ value)
eco $ valor."
";
Saída:
A saída a seguir aparecerá após a execução do script acima.
Exemplo-2: filtre uma matriz associativa
Crie um arquivo PHP com o seguinte script para filtrar os valores da matriz associativa com base em uma condição. A matriz contém o nome do aluno como a chave e a marca como o valor. A função Array_filter () foi usada no script para recuperar esses elementos da matriz em que o valor é superior a 79. Em seguida, a matriz filtrada foi impressa.
// declarar uma matriz associativa de quatro elementos
$ marks = ["mir ali" => 90, "kamal hossain" => 78, "sakil ahamed" => 82, "moniruzzaman" => 85];
// Crie uma nova matriz que contém número superior a 79
$ filter_marks = Array_filter ($ Marks,
função ($ mark)
retornar $ mark> 79;
);
// Imprima a nova matriz
foreach ($ filter_marks como $ key => $ value)
eco $ key. "obtido".$ valor."
";
Saída:
A saída a seguir aparecerá após a execução do script acima.
Exemplo 3: filtre uma matriz associativa usando um objeto
Crie um arquivo PHP com o seguinte script que filtrará os valores de uma matriz usando o objeto de classe na função de retorno de chamada. A matriz associativa contém o ID do candidato como chave e 'presente' ou 'ausente' como valor. A função Array_filter () filtrará os elementos em que os valores estão 'presentes'.
/*Declare uma classe para descobrir os atuais candidatos
* usando um método*/
Verificação da aula
Função pública presente ($ val)
retornar $ val == "presente";
// declarar uma matriz associativa de 5 elementos
$ candidatos = ['08967' => 'presente', '04567' => 'ausente', '08923' => 'presente', '03412' => 'ausente', '07811' => 'presente'];
/*Crie uma nova matriz usando Array_filter ()
com o objeto e a função de retorno de chamada*/
$ presente_applictants = array_filter ($ candidatos,
[new check (), 'presente']
);
// Imprima o número de candidatos totais
eco "TOTAL CELICANTES =".contagem ($ candidatos)."
";
// Imprima o número de candidatos atuais
eco "atuais candidatos =".count ($ presente_applicants);
Saída:
A saída a seguir aparecerá após a execução do script acima.
Exemplo-4: filtre uma matriz associativa usando uma bandeira
Crie um arquivo php com o seguinte script para filtrar a matriz com base nos sinalizadores Array_filter_use_key e Array_filter_use_both. A função Primeira Array_filter () recuperará o elemento da matriz onde o valor da chave é 'Londres'. A função Second Array_Filter () recuperará o elemento da matriz onde o valor da chave é 'Cabul', e o valor é 'Afeganistão'.
// declarar uma matriz associativa
$ array = ['dhaka' => 'Bangladesh', 'kabul' => 'Afeganistão', 'canberra' => 'Austrália',
'Pequim' => 'China', 'Londres' => 'Inglaterra', 'Washington D.C.'=>' Estados Unidos '];
// Usando Array_filter () com Array_filter_use_key
$ filtrado_array1 = array_filter (
$ matriz,
fn ($ k) => $ k == 'Londres', array_filter_use_key);
// imprima o valor da matriz filtrada
foreach ($ filtrado_array1 como $ key => $ value)
eco "
Nome do país: $ valor
";
eco "nome de capital. $ key
";
// Usando Array_filter () com Array_filter_use_both
$ filtred_array2 = array_filter (
$ matriz,
fn ($ v, $ k) => $ k == 'kabul' && $ v == 'Afghanistan', array_filter_use_both);
// imprima o valor da matriz filtrada
foreach ($ filtrado_array2 como $ key => $ value)
eco "
Nome do país: $ valor
";
eco "nome de capital. $ key
";
Saída:
A saída a seguir aparecerá após a execução do script acima.
Exemplo 5: filtre uma matriz multidimensional
Crie um arquivo php com o seguinte script que filtrará os valores da matriz bidimensional. A função Array_filter () filtrará esses valores da matriz onde o valor do salário A chave é maior que 60000.
// declarar uma matriz bidimensional
$ funcionários = [
['nome' => 'Jafar iqbal', 'email' => '
[email protected] ',' salário '=> 60000],
['nome' => 'mohammed ali', 'email' => '
[email protected] ',' salário '=> 55000],
['nome' => 'nila akter', 'email' => '
[email protected] ',' salário '=> 73000],
['nome' => 'riya chowdhury', 'email' => '
[email protected] ',' salário '=> 80000]];
// filtra os valores da matriz com base no salário
$ filterred_employees = Array_filter ($ funcionários, função ($ array)
// devolver funcionários cujo salário é superior a 60000
if ($ Array ['Salário']> 60000)
retornar $ matriz;
);
// Imprima a matriz filtrada
eco '
';
print_r ($ filterred_employees);
eco '
';
?>
Saída:
A saída a seguir aparecerá após a execução do script acima.
Conclusão:
A função Array_filter () pode filtrar os valores da matriz de maneira diferente usando a função de retorno de chamada com ou sem o valor do sinalizador. As maneiras de filtrar matrizes unidimensionais e bidimensionais numéricas e associativas foram mostradas nos exemplos deste tutorial. Espero que os usuários do PHP possam filtrar os valores com base em seus requisitos depois de ler este tutorial.