$ _POST значения из второго измерения массива - PullRequest
1 голос
/ 02 июля 2010

Использование PHP.Я пытаюсь получить значения $ _POST из второго измерения двумерного массива $ _POST, фактически не зная имен публикуемых значений.Вот что у меня есть;это не работает.

foreach($_POST as $k=>$v) {

    $$k=$v;

    if (is_array($k) == true) {

        foreach($k as $value) {

            echo $value;
            echo "<br>";

        }

    }

}

Я использовал

<code>echo '<pre>'; 
print_r($_POST); 
echo '
';

, чтобы убедиться, что значения в массивах есть и есть.Он показывает:

Array
(

    [colors] => Array
        (
            [0] => red
            [1] => yellow
            [2] => blue
            [3] => black
        )

)

Вот как выглядят мои флажки формы:

<input name="colors[]" type="checkbox" value="red" />
<input name="colors[]" type="checkbox" value="yellow" />
<input name="colors[]" type="checkbox" value="blue" />
<input name="colors[]" type="checkbox" value="black" />

Как получить значения из массива в массиве, если я не знаюимя массиваИмя не всегда будет цвета?

Ответы [ 3 ]

4 голосов
/ 02 июля 2010

Ты почти у цели. Это должно работать:

foreach($_POST as $k=>$v) {

     if (is_array($v) == true) {

        foreach($v as $value) {

           echo htmlspecialchars($value); // Always sanitize when you output! :) 
           echo "<br>";

        }

    }

}
1 голос
/ 02 июля 2010

Простая причина, по которой вышеприведенный код не работает, заключается в том, что вы проверяете, является ли массив key массивом, а не самим фактическим значением. Поменять местами ...

if (is_array($k) == true)

с

if (is_array($v) == true)

Сделайте то же самое во вложенном предложении foreach.

И все должно работать нормально. Кроме того, вы можете также отказаться от логического сравнения, is_array возвращает логическое значение, вы не делаете его более явным, чем оно есть.

0 голосов
/ 02 июля 2010
foreach( $_POST as $key => $item ) {
    if ( is_array($item) ) { // you want to check if the value is an array, not the key
        foreach($item as $index => $value) {
            echo $value . "\n<br>";
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...