Los datos de la matriz se pueden filtrar iterando los elementos de la matriz con el bucle en PHP. Esta tarea se puede hacer muy fácilmente usando la función Array_Filter (). La función de devolución de llamada definida por el usuario se usa en esta función para filtrar los datos. La matriz devuelta por esta función conservó la clave de la matriz original. Se han mostrado diferentes usos de la función Array_Filter () en este tutorial.
Sintaxis:
La sintaxis del array_filter () se da a continuación.
Array Array_Filter ($ Array, $ Callback_function, $ Flag)
- El primer argumento de la función es obligatorio y contiene una matriz y se utilizará para filtrar.
- El segundo argumento es opcional, y es una función de devolución de llamada utilizada para filtrar los datos de la matriz.
- El tercer argumento es opcional y puede almacenar dos tipos de valores. Un valor es array_filter_use_key que pasa la clave de la matriz como argumento en la función de devolución de llamada. Otro valor puede ser array_filter_use_both, que pasa la clave y el valor como argumento de la función de devolución de llamada.
- Devuelve la matriz filtrada.
Se han mostrado diferentes usos de las funciones array_filter () en la siguiente parte del tutorial.
Ejemplo-1: filtrar una matriz numérica
Cree un archivo PHP con el siguiente script para filtrar los valores de la matriz basados en una condición. La matriz declarada en el script contiene valores positivos, negativos y cero. La función array_filter () se ha utilizado en el script para recuperar los valores negativos de la matriz. A continuación, se imprimió la matriz filtrada.
// declarar una matriz numérica de números positivos, negativos y cero
$ array = [78, -56, 45, 0, -33, 59, -21];
// crear una nueva matriz de números negativos
$ filtre_array = array_filter ($ array,
función ($ a)
devolver $ a < 0;
);
// Imprimir la nueva matriz
echo "Los números negativos de la matriz son:
";
foreach ($ filtre_array as $ value)
Echo $ valor."
";
Producción:
La siguiente salida aparecerá después de ejecutar el script anterior.
Ejemplo-2: filtrar una matriz asociativa
Cree un archivo PHP con el siguiente script para filtrar los valores de matriz asociativo basados en una condición. La matriz contiene el nombre del alumno como la clave y la marca como el valor. La función array_filter () se ha utilizado en el script para recuperar esos elementos de la matriz donde el valor es mayor de 79. A continuación, se imprimió la matriz filtrada.
// declarar una matriz asociativa de cuatro elementos
$ Marks = ["Mir Ali" => 90, "Kamal Hossain" => 78, "Sakil Ahamed" => 82, "Moniruzzaman" => 85];
// Crear una nueva matriz que contenga un número de más de 79
$ filtre_marks = array_filter ($ marcas,
función ($ mark)
devolver $ Mark> 79;
);
// Imprimir la nueva matriz
foreach ($ filtre_marks como $ key => $ value)
Echo $ Key. " obtenido ".$ valor."
";
Producción:
La siguiente salida aparecerá después de ejecutar el script anterior.
Ejemplo-3: filtre una matriz asociativa usando un objeto
Cree un archivo PHP con el siguiente script que filtrará los valores de una matriz utilizando el objeto de clase en la función de devolución de llamada. La matriz asociativa contiene la identificación del solicitante como clave y 'presente' o 'ausente' como valor. La función array_filter () filtrará aquellos elementos donde los valores están 'presentes'.
/*Declarar una clase para averiguar los solicitantes actuales
* utilizando un método*/
cheque de clases
función pública presente ($ val)
devolver $ val == "presente";
// declarar una matriz asociativa de 5 elementos
$ solicitantes = ['08967' => 'presente', '04567' => 'ausente', '08923' => 'presente', '03412' => 'ausente', '07811' => 'presente'];
/*Crear una nueva matriz usando Array_Filter ()
con la función de objeto y devolución de llamada*/
$ present_applicants = array_filter ($ solicitantes,
[nuevo cheque (), 'presente']
);
// imprime el número de solicitantes totales
echo "solicitantes totales =".recuento ($ solicitantes)."
";
// imprime el número de solicitantes actuales
echo "solicitantes presentes =".count ($ presente_applicants);
Producción:
La siguiente salida aparecerá después de ejecutar el script anterior.
Ejemplo-4: filtra una matriz asociativa usando una bandera
Cree un archivo PHP con el siguiente script para filtrar la matriz basada en los indicadores array_filter_use_key y array_filter_use_both. La primera función array_filter () recuperará el elemento de la matriz donde es el valor clave 'Londres'. La segunda función array_filter () recuperará el elemento de la matriz donde es el valor de clave 'Kabul', y el valor es'Afganistán'.
// declarar una matriz asociativa
$ array = ['dhaka' => 'bangladesh', 'kabul' => 'afganistán', 'canberra' => 'Australia',
'Beijing' => 'China', 'Londres' => 'Inglaterra', "Washington D.C.'=>' Estados Unidos '];
// usando array_filter () con array_filter_use_key
$ filtred_array1 = array_filter (
$ Array,
fn ($ k) => $ k == 'Londres', array_filter_use_key);
// Imprima el valor de la matriz filtrada
foreach ($ filtred_array1 como $ key => $ valor)
eco "
Nombre del país: $ valor
";
Echo "nombre de capital. $ Key
";
// usando array_filter () con array_filter_use_both
$ filtred_array2 = array_filter (
$ Array,
fn ($ V, $ k) => $ k == 'Kabul' && $ V == 'Afganistán', Array_Filter_Use_Both);
// Imprima el valor de la matriz filtrada
foreach ($ filtred_array2 como $ key => $ value)
eco "
Nombre del país: $ valor
";
Echo "nombre de capital. $ Key
";
Producción:
La siguiente salida aparecerá después de ejecutar el script anterior.
Ejemplo-5: filtrar una matriz multidimensional
Cree un archivo PHP con el siguiente script que filtrará los valores de la matriz bidimensional. La función array_filter () filtrará esos valores desde la matriz donde el valor del salario La clave es mayor que 60000.
// declarar una matriz bidimensional
$ empleados = [
['Name' => 'Jafar Iqbal', 'Correo electrónico' => '
[email protected] ',' salario '=> 60000],
['Nombre' => 'Mohammed Ali', 'Correo electrónico' => '
[email protected] ',' salario '=> 55000],
['Nombre' => 'Nila Akter', 'Correo electrónico' => '
[email protected] ',' salario '=> 73000],
['Nombre' => 'Riya Chowdhury', 'correo electrónico' => '
[email protected] ',' salario '=> 80000]];
// Filtrar los valores de la matriz basados en el salario
$ FilterRed_Employees = array_filter ($ empleados, function ($ array)
// Devuelve empleados cuyo salario es más de 60000
if ($ array ['salario']> 60000)
devolver $ array;
);
// imprime la matriz filtrada
eco '
';
print_r ($ filtred_employees);
eco '
';
?>
Producción:
La siguiente salida aparecerá después de ejecutar el script anterior.
Conclusión:
La función array_filter () puede filtrar los valores de la matriz de manera diferente utilizando la función de devolución de llamada con o sin el valor del indicador. Las formas de filtrar matrices numéricas y asociativas unidimensionales y bidimensionales se han mostrado en los ejemplos de este tutorial. Espero que los usuarios de PHP puedan filtrar los valores en función de sus requisitos después de leer este tutorial.