filter_input_array

Gets external variables and optionally filters them

&reftitle.description; ``array``false``null```filter_input_array` `int` `type` ``array``int```options` `FILTER_DEFAULT` `bool` `add_empty`&true;

This function is useful for retrieving many values without repetitively calling `filter_input`.

&reftitle.parameters;

`type`

- One of `INPUT_GET`, `INPUT_POST`, `INPUT_COOKIE`, `INPUT_SERVER`, or `INPUT_ENV`.

`options`

- An array defining the arguments. A valid key is a `string` containing a variable name and a valid value is either a filter type, or an `array` optionally specifying the filter, flags and options. If the value is an array, valid keys are `filter` which specifies the filter type, `flags` which specifies any flags that apply to the filter, and `options` which specifies any options that apply to the filter. See the example below for a better understanding.

  This parameter can be also an integer holding a filter constant. Then all values in the input array are filtered by this filter.

`add_empty`

- Add missing keys as &null; to the return value.

&reftitle.returnvalues;

An array containing the values of the requested variables on success. If the input array designated by `type` is not populated, the function returns &null; if the `FILTER_NULL_ON_FAILURE` flag is not given, or &false; otherwise. For other failures, &false; is returned.

An array value will be &false; if the filter fails, or &null; if the variable is not set. Or if the flag `FILTER_NULL_ON_FAILURE` is used, it returns &false; if the variable is not set and &null; if the filter fails. If the `add_empty` parameter is &false;, no array element will be added for unset variables.

&reftitle.examples;

### A `filter_input_array` example

    <?php

    /* data actually came from POST
    $_POST = array(
        'product_id' => 'libgd<script>',
        'component'  => array('10'),
        'version'    => '2.0.33',
        'testarray'  => array('2', '23', '10', '12'),
        'testscalar' => '2',
    );
    */

    $args = array(
        'product_id'   => FILTER_SANITIZE_ENCODED,
        'component'    => array('filter'    => FILTER_VALIDATE_INT,
                                'flags'     => FILTER_REQUIRE_ARRAY,
                                'options'   => array('min_range' => 1, 'max_range' => 10)
                               ),
        'version'      => 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_REQUIRE_ARRAY,
                               )

    );

    $myinputs = filter_input_array(INPUT_POST, $args);

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

&example.outputs;

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

&reftitle.notes;

There is no `REQUEST_TIME` key in `INPUT_SERVER` array because it is inserted into the `$_SERVER` later.

&reftitle.seealso;

- `filter_input`
- `filter_var_array`
- filter.filters