我试图检查用户提交的数据,从$_POST
,至少有相同的元素,我传递的数组。我这样做是因为我稍后会通过调用$_POST['element']
来使用这些元素,并且我不喜欢关于该元素不存在的错误(未设置)。 :)
我不想使用类似isset($_POST['x'], $_POST['y'], $_POST['z'])
的东西,因为每次我需要重写$_POST
并且它看起来不可读。
我试图使用in_array(array('x', 'y', 'z'), $_POST)
,但它不起作用(它返回false
,它应该返回true
)。任何想法如何使这项工作? :)我相信我有空字符串,如$_POST['x']
,$_POST['y']
和$_POST['z']
。我甚至试图将软管三$_POST
元素的值更改为空串以外的值 - 仍然...不按预期工作。 :(
感谢的意见:)
编辑:
刚刚发现in_array()
检查值,而不是钥匙。于是,我试图做这样的... ...
in_array(array('title', 'slug', 'content'), array_keys($_POST))
尽管如此,它返回false
。它是如何发生的? ;/
编辑#2:
好的,这是调试的结果...
传入$_POST
:
array(3) {
["title"]=>
string(0) ""
["slug"]=>
string(0) ""
["content"]=>
string(0) ""
}
结果的array_keys($_POST)
:
array(3) {
[0]=>
string(5) "title"
[1]=>
string(4) "slug"
[2]=>
string(7) "content"
}
结果in_array(array('title', 'slug', 'content'), array_keys($_POST))
:
bool(false)
的问题...为什么会false
?尽我所知,我做的都是正确的。
编辑#3:
最后,我创建了名为Arr::keys_exists($keys, $array)
自己的方法。
你尝试的print_r($ _ POST)? – stivlo
请参阅'编辑#2'以获得调试结果。 – daGrevis
in_array一次只能测试一个值in_array('title',$ array_keys)会起作用。看到我更新的答案。 – stivlo