array_filter
En esta página
array_filter
Filtra los elementos de un array mediante una función de retrollamada
Descripción#
array_filter(array $array, [callable $callback], [int $mode]): array
```php
Evalúa cada valor del array `array` pasándolos a la función de retrollamada `callback`. Si la función de retrollamada `callback` devuelve `true`, el valor actual del array `array` es devuelto en el `array` resultante.
Las claves del array son preservadas, y puede causar anomalías si el array `array` estaba indexado. El array resultante puede ser reindexado utilizando la función `array_values`.
## Parámetros
`array`
El array a recorrer
`callback`
La función de retrollamada a utilizar
Si no se proporciona ninguna función de retrollamada `callback`, todas las entradas vacías del array `array` serán eliminadas. Ver la función `empty` para comprender cómo PHP maneja el vacío en este caso.
`mode`
Flag que indica cuáles son los argumentos a enviar a la función de retrollamada `callback`:
- `ARRAY_FILTER_USE_KEY` - pasar la clave como único argumento a `callback` en lugar del valor.
- `ARRAY_FILTER_USE_BOTH` - pasar tanto el valor como la clave como argumentos de `callback` en lugar del valor.
Por omisión `0`, que pasará el valor como único argumento de `callback`.
## Valores devueltos
Devuelve el array filtrado.
## Historial de cambios
| Versión | Descripción |
|----|----|
| 8.0.0 | `callback` es ahora nullable. |
| 8.0.0 | Si `callback` espera un parámetro a ser pasado por referencia, esta función emite ahora una `E_WARNING`. |
## Ejemplos
Ejemplo con `array_filter`
El ejemplo anterior mostrará:
Impar : Array ( [a] => 1 [c] => 3 [e] => 5 ) Par : Array ( [0] => 6 [2] => 8 [4] => 10 [6] => 12 )
Ejemplo con `array_filter` `callback`
El ejemplo anterior mostrará:
Array
(
[0] => foo
[2] => -1
)
Ejemplo con `array_filter` y `mode`
```php
El ejemplo anterior mostrará:
array(1) {
["b"]=>
int(2)
}
array(2) {
["b"]=>
int(2)
["d"]=>
int(4)
}
Notas#
[!CAUTION] Si el array es modificado desde la función de retrollamada (por ejemplo se añaden o eliminan elementos), el comportamiento de esta función es indefinido.
Véase también#
array_intersect, array_find, array_any, array_map, array_reduce