Esta función integrada en PHP se utiliza para filtrar los elementos de una array mediante una función definida por el usuario que también se denomina función de devolución de llamada. La función array_filter() itera sobre cada valor de la array, pasándolos a la función definida por el usuario o la función de devolución de llamada. Si la función de devolución de llamada devuelve verdadero, el valor actual de la array se devuelve a la array de resultados; de lo contrario, no. De esta manera, las claves de la array se conservan, es decir, la clave del elemento en la array original y la array de salida son las mismas.
Sintaxis:
array array_filter($array, $callback_function, $flag)
Parámetros : La función toma tres parámetros, de los cuales uno es obligatorio y los otros dos son opcionales.
- $array (obligatorio): Esto se refiere a la array de entrada en la que se realizará la operación de filtro.
- $callback_function (opcional): Hace referencia a la función definida por el usuario. Si no se proporciona la función, se eliminarán todas las entradas de la array iguales a FALSO.
- $bandera (opcional): se refiere a los argumentos pasados a la función de devolución de llamada.
- ARRAY_FILTER_USE_KEY: pasa la clave como único argumento a una función de devolución de llamada, en lugar del valor de la array.
- ARRAY_FILTER_USE_BOTH: pasa tanto el valor como la clave como argumentos para la devolución de llamada en lugar del valor.
Valor devuelto : la función devuelve una array filtrada.
A continuación se muestra un programa que muestra cómo devolver o filtrar incluso elementos de una array utilizando la función array_filter().
<?php // PHP function to check for even elements in an array function Even($array) { // returns if the input integer is even if($array%2==0) return TRUE; else return FALSE; } $array = array(12, 0, 0, 18, 27, 0, 46); print_r(array_filter($array, "Even")); ?>
Producción:
Array ( [0] => 12 [1] => 0 [2] => 0 [3] => 18 [5] => 0 [6] => 46 )
En este ejemplo, no pasaremos la función de devolución de llamada y veamos el resultado. Veremos que no se imprimen los 0 o elementos falsos:
<?php // PHP function to check for even elements in an array function Even($array) { // returns if the input integer is even if($array%2==0) return TRUE; else return FALSE; } $array = array(12, 0, 0, 18, 27, 0, 46); print_r(array_filter($array)); ?>
Producción:
Array ( [0] => 12 [3] => 18 [4] => 27 [6] => 46 )
Referencia : http://php.net/manual/en/function.array-filter.php
Publicación traducida automáticamente
Artículo escrito por Chinmoy Lenka y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA