PHP in_array为$ _POST

时间:2011-11-12 21:11:14

标签: php arrays foreach

我希望这不是一个含糊不清的问题,但这里也是如此。

我想循环遍历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数组如何工作?!

2 个答案:

答案 0 :(得分:6)

您误解了in_array的工作原理。 in_array检查值。你想检查一下钥匙。

您可以使用isset,也可以使用array_key_exists(如果项目存在且值为null,则返回true)。

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

答案 1 :(得分:1)

使用array_intersect功能。

$an_array = array_intersect(array_keys($_POST), $textfield_array);