PHP in_array для $ _POST - PullRequest
       4

PHP in_array для $ _POST

1 голос
/ 13 ноября 2011

Я надеюсь, что это не слишком расплывчатый вопрос, но здесь идет.,Если они это сделают, я хочу присвоить их массиву an_array.

Кажется, что совпадений нет, хотя я знаю, что они должны быть!Вот мой код:

<?php
$an_array = array();

$textfield_array = array(
 'item_no', 'button_text', 'text_field', 'drop_down_title'
);

foreach( $textfield_array as $textfield ){
  if( in_array( $textfield, $_POST ) ){
    $an_array[$textfield] = $_POST[$textfield];
  }
}
?>

Я ненормальный?Или недоразумение, как работает массив $_POST?!

Ответы [ 2 ]

6 голосов
/ 13 ноября 2011

Вы неправильно понимаете, как работает in_array. in_array проверяет значения. Вы хотите проверить ключи.

Вы можете использовать isset или array_key_exists (возвращает true, если элемент существует со значением null).

foreach ($textfield_array as $textfield) {
    if (isset($_POST[$textfield])) {
        $an_array[$textfield] = $_POST[$textfield];
    }
}
1 голос
/ 13 ноября 2011

Используйте функцию array_intersect.

$an_array = array_intersect(array_keys($_POST), $textfield_array);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...