filter_input() c массивом

Рейтинг: 1Ответов: 1Опубликовано: 23.04.2015

Есть входные данные вида

array(2) 
 {
   [0]=> array(2) 
   {
     ["t"] => string(1) "1"
     ["a"] => string(2) "a1"
   }
   [1]=> array(2) 
   {
     ["t"] => string(1) "2"
     ["a"] => string(2) "a2"
   }
}

Можно ли как-нибудь через filter_input() задать фильтр FILTER_VALIDATE_INT для элементов массива test[]["t"] ?
Если нельзя, то не подскажете в каком направлении копать, чтобы написать свою функцию фильтрацией такого массива?

З.Ы. пока это выглядит как
filter_input(INPUT_POST, 'test', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY)

Ответы

▲ 2Принят
$data = [
    [
        "t" => "1",
        "a" => "a1",
        ],
    [
        "t" => "2",
        "a" => "a2",
        ],
    ];

$args = [
    't' => FILTER_VALIDATE_INT,
    'a' => FILTER_VALIDATE_INT,
    ];

$data = array_map(function ($value) use ($args) {
        return filter_var_array($value, $args);
    }, $data);


// var_dump($data);
// 
// array (size=2)
//   0 => 
//     array (size=2)
//       't' => int 1
//       'a' => boolean false
//   1 => 
//     array (size=2)
//       't' => int 2
//       'a' => boolean false