(PHP 5 >= 5.2.0, PHP 7, PHP 8)
filter_var_array — Gets multiple variables and optionally filters them
$array
, array|int $options
= FILTER_DEFAULT
, bool $add_empty
= true
): array|false|null
Filter an associative array of values using
FILTER_VALIDATE_*
validation filters,
FILTER_SANITIZE_*
sanitization filters, or custom filters.
array
options
FILTER_VALIDATE_*
constants, or a sanitization filter by using one of the
FILTER_SANITIZE_*
constants.
The option array is an associative array where the key corresponds
to a key in the data array
and the associated
value is either the filter to apply to this entry,
or an associative array describing how and which filter should be
applied to this entry.
The associative array describing how a filter should be applied
must contain the 'filter'
key whose associated
value is the filter to apply, which can be one of the
FILTER_VALIDATE_*
,
FILTER_SANITIZE_*
,
FILTER_UNSAFE_RAW
, or
FILTER_CALLBACK
constants.
It can optionally contain the 'flags'
key
which specifies and flags that apply to the filter,
and the 'options'
key which specifies any options
that apply to the filter.
add_empty
Add missing keys as null
to the return value.
An array containing the values of the requested variables on success, or false
on failure. An array value will be false
if the filter fails, or null
if
the variable is not set.
Example #1 A filter_var_array() example
<?php
$data = [
'product_id' => 'libgd<script>',
'component' => '10',
'versions' => '2.0.33',
'testscalar' => ['2', '23', '10', '12'],
'testarray' => '2',
];
$filters = [
'product_id' => FILTER_SANITIZE_ENCODED,
'component' => [
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_FORCE_ARRAY,
'options' => [
'min_range' => 1,
'max_range' => 10,
],
],
'versions' => [
'filter' => FILTER_SANITIZE_ENCODED
],
'testscalar' => [
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_SCALAR,
],
'testarray' => [
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_FORCE_ARRAY,
],
'doesnotexist' => FILTER_VALIDATE_INT,
];
var_dump(filter_var_array($data, $filters));
?>
The above example will output:
array(6) { ["product_id"]=> string(17) "libgd%3Cscript%3E" ["component"]=> array(1) { [0]=> int(10) } ["versions"]=> string(6) "2.0.33" ["testscalar"]=> bool(false) ["testarray"]=> array(1) { [0]=> int(2) } ["doesnotexist"]=> NULL }
FILTER_VALIDATE_*
FILTER_SANITIZE_*