(PHP 5 >= 5.2.0, PHP 7, PHP 8)
filter_input_array — Gets external variables and optionally filters them
$type, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|nullThis function is useful for retrieving many values without repetitively calling filter_input().
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.
      
   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.
  
Example #1 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";
?>
The above example will output:
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)
  }
}
Note:
There is no
REQUEST_TIMEkey inINPUT_SERVERarray because it is inserted into the $_SERVER later.