$ _POSTのPHPのin_array

私はこれがあまりにも漠然とした質問ではないことを願っています。

textfield_array に格納されている値をループして、 $ _
POST
配列のキーと一致するかどうかを確認します。それらを行う場合は、それらを
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 配列の仕組みを誤解していますか?

ベストアンサー

in_array の仕組みを誤解しています。 in_array
は値をチェックします。あなたはキーをチェックしたい。

isset を使用するか、 array_key_exists
を使用できます(値が null のアイテムが存在する場合はtrueを返します)。

foreach ($textfield_array as $textfield) {
    if (isset($_POST[$textfield])) {
        $an_array[$textfield] = $_POST[$textfield];
    }
}

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です