数组中的PHP执行不正确

数组中的PHP执行不正确,php,arrays,Php,Arrays,所以我有这个 $changed = $_POST; if(in_array("op1", $changed)) { echo 'Yes'; } else { echo 'No'; } 每次我运行这个,它只是说不 如果我像这样打印我的帖子 print_r($_POST); 它显示我的数组如

所以我有这个

            $changed = $_POST;
            if(in_array("op1", $changed))
            {
                echo 'Yes';
            } else
            {
                echo 'No';
            }
每次我运行这个,它只是说不

如果我像这样打印我的帖子

print_r($_POST);
它显示我的数组如下所示

Array ( [search] => [op1] => Yes [submit] => Submit Query ) No 

所以我可以看到OP1在那里,但是
if(在数组中)
不起作用。

在数组中
查找数组中的值。您正在尝试搜索密钥

您想改为使用
array\u key\u exists

用于从给定数组中搜索值,但您希望搜索数组的键,所以可以使用搜索数组键

 if(array_key_exists("op1", $changed)) {
     echo 'Yes';
 } else {
     echo 'No';
 }

或者可能是
isset($\u POST['op1'])
如果NULL不是无问题的
$\u POST['op1']
不是
NULL
。因此,如果我正在搜索一个键,例如,我刚刚将代码更改为if(在数组中(“Yes”,$changed)),它工作是因为Yes在那里。如何将键与找到的值进行匹配?如果它发现是的。。。它如何知道是来自op1的键?@RoxyMiles
if(array_key_存在(“op1”),$changed)和&$changed['op1']=“YES”)
likethat@RoxyMiles检查该键是否存在,以及检查该键的值是两个独立的操作。但是可以轻松地与
&&
组合。用于值搜索而不是键搜索的In_数组
 if(array_key_exists("op1", $changed)) {
     echo 'Yes';
 } else {
     echo 'No';
 }