filter_var_array

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_var_arrayПринимает несколько переменных и, при необходимости, фильтрует их

Описание

filter_var_array(array $array, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null

Фильтр значений ассоциативного массива (array) с использованием фильтров проверки (FILTER_VALIDATE_*), очистки (FILTER_SANITIZE_*) или пользовательских фильтров.

Список параметров

array
Ассоциативный массив (array), содержащий данные для фильтрации.
options
Либо ассоциативный массив (array) опций, либо фильтр, применяемый к каждой записи, который может быть либо фильтром проверки с использованием одной из констант FILTER_VALIDATE_*, либо фильтром очистки с использованием одной из констант FILTER_SANITIZE_*. Массив опций – это ассоциативный массив, в котором ключ соответствует ключу в массиве данных параметра array, а связанное с ним значение – это либо фильтр, который нужно применить к этой записи, либо ассоциативный массив, описывающий, как и какой фильтр должен быть применён к этой записи. Ассоциативный массив, описывающий применение фильтра, должен содержать ключ 'filter', ассоциированным значением которого является применяемый фильтр, который может быть одной из констант FILTER_VALIDATE_*, FILTER_SANITIZE_*, FILTER_UNSAFE_RAW или FILTER_CALLBACK. Дополнительно может содержать ключ 'flags', задающий флаги, которые применяются к фильтру и ключ 'options', задающий любые опции, которые применяются к фильтру.
add_empty

Добавить отсутствующие ключи в виде null в возвращаемое значение.

Возвращаемые значения

Массив, содержащий значения запрошенных переменных в случае успешного выполнения, или false в случае возникновения ошибки. Значение массива будет false, если фильтрация завершилась неудачей, или null, если переменная не определена.

Примеры

Пример #1 Пример использования filter_var_array()

<?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));

?>

Результат выполнения приведённого примера:

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_input_array() - Получает несколько переменных извне PHP и, при необходимости, фильтрует их
  • filter_var() - Фильтрует переменную
  • filter_input() - Получает конкретную внешнюю переменную по имени и, если нужно, фильтрует значение переменной
  • Фильтры проверки: FILTER_VALIDATE_*
  • Фильтры очистки: FILTER_SANITIZE_*