filter_var_array

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

filter_var_arrayObtêm múltiplas variáveis e opcionalmente as filtra

Descrição

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

Esta função é útil para receber muitos valores sem repetidamente chamar a função filter_var().

Parâmetros

array

Um array com as chaves string contendo os dados a filtrar.

options

Um array definindo os argumentos. Uma chave válida é uma string contendo o nome da variável, e um valor válido é um tipo de filtro ou um array opcionalmente especificando o filtro, marcas e opções. Se o valor for um array, chaves válida são filter que especifica o tipo de filtro, flags que especifica alguma marca aplicada ao filtro, e options que especifica uma opção que é aplicada ao filtro. Veja o exemplo abaixo para um melhor entendimento.

Este parâmetro pode ser também um inteiro contendo uma constante de filtro. Desta forma, todos valores no array de entrada serão filtrados por este filtro.

add_empty

Adiciona chaves faltantes como null ao valor de retorno.

Valor Retornado

Um array contendo valores das variáveis requisitadas em caso de sucesso, ou false em caso de falha. Um valor de array será false se o filtro falhar, ou null se a variável não estiver definida.

Exemplos

Example #1 Um exemplo de filter_var_array()

<?php

$data = array(
    'product_id'    => 'libgd<script>',
    'component'     => '10',
    'versions'      => '2.0.33',
    'testscalar'    => array('2', '23', '10', '12'),
    'testarray'     => '2',
);

$args = array(
    'product_id'   => FILTER_SANITIZE_ENCODED,
    'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            'flags'     => FILTER_FORCE_ARRAY,
                            'options'   => array('min_range' => 1, 'max_range' => 10)
                           ),
    'versions'     => FILTER_SANITIZE_ENCODED,
    'doesnotexist' => FILTER_VALIDATE_INT,
    'testscalar'   => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_REQUIRE_SCALAR,
                           ),
    'testarray'    => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_FORCE_ARRAY,
                           )

);

$myinputs = filter_var_array($data, $args);

var_dump($myinputs);
echo "\n";
?>

O exemplo acima produzirá:

array(6) {
  ["product_id"]=>
  string(17) "libgd%3Cscript%3E"
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
  string(6) "2.0.33"
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

Veja Também