2015-10-28 1 views
0

У меня есть переменная массива $ _POST без ключей (из формы ввода с именем []).Как исправить использование filter_input_array в массиве без ключей?

В var_dump($_POST) это выглядит следующим образом:

array(2) { 
    ["name1"]=> 
    string(1) "ttt" 
    ["name2"]=> 
    array(1) { 
    [0]=> 
    string(2) "test" 
    } 
} 

Как я могу исправить использовать filter_input_array на этом массиве?

Например, мне нужно использовать FILTER_VALIDATE_INT для всех name2 элементов.

UPD: print_r из $_POST:

Array 
(
    [name1] => ttt 
    [name2] => Array 
     (
      [0] => test 
     ) 
) 
+0

используйте 'print_r' и разместите элементы массива –

ответ

0
$args = array(
'name1' => SOME_FILTER // this is for example, 

'name2' => array(
         'filter' => FILTER_VALIDATE_INT, 
         'flags' => FILTER_REQUIRE_SCALAR, 
         ), 

); 

$ myinputs = filter_input_array (INPUT_POST, $ арг);

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

+0

Я пытаюсь запустить этот код: http://pastebin.com/rt1N4Kzv, но сначала var_dump ($ myinputs) возвращает NULL ... – Max

+0

Если я использую FILTER_REQUIRE_ARRAY вместо FILTER_REQUIRE_SCALAR, код работает, спасибо! – Max

+0

вам нужно отправить параметры с запросом на отправку, а затем получить его с помощью INPUT_POST с определением, что он больше не работает –

0

предположим, что ваш пост name2 как это: $_POST['name2']=array(0=>"100",1=>20,2=>"test"); попробуйте следующий код.

<?php 
$_POST['name2']=array(0=>"100",1=>20,2=>"test"); 
foreach($_POST['name2'] as $key=>$val){ 
if (!filter_var($val, FILTER_VALIDATE_INT) === false) { 
    echo("value is an integer<br>"); 
} else { 
    echo("value is not an integer<br>"); 
} 
} 
?> 
+0

Да, я использую его сейчас, но могу ли я использовать функции filter_input только без прямого доступа к $ _POST? – Max

Смежные вопросы