php检查数组键是否设置且不等于

时间:2014-05-02 22:20:40

标签: php arrays

如何在以下方案中进行简单检查。这是我的阵列:

[data] =>排列     (         [0] =>博客         ...     )

这似乎不起作用:

if(isset($data[1]) != "page") { 
   do stuff here...
}

我需要检查是否设置了键[1]且值不等于"页面"

4 个答案:

答案 0 :(得分:1)

if(isset($data) && isset($data[1]) && $data[1] != 'page') {
   // do something
}

你可能在想,“他为什么不检查$data是否是阵列?”因为没关系,你可以从PHP中的下标访问字符串。

答案 1 :(得分:0)

Isset只返回布尔值,因此您无法将结果与字符串' page'进行比较。你需要进行2次单独的检查。

此外,我不确定您是否要检查第一个元素是否有页面或索引1处的元素是否有页面(如果您不定义,则php数组从0开始)。

但它至少应该是if(isset(data [1])&& data [1]!=' page')

答案 2 :(得分:0)

你做错了,因为isset将返回bool而不是$data[1]的值。

无论如何,您可以尝试以下方法:

    if(isset($data) && array_key_exists(1, $data) && $data[1] != "page")
         do stuff here...
    }
如果array_key_exist数组中存在key 1

$data将返回true,然后将data[1]与字符串进行比较。

答案 3 :(得分:0)

我找到了更好的解决方案:

if(!array_search("page", $data)) {
   // do stuff here
}

这对我有用