更简单的方法来检查多个变量是否不等于值php

时间:2012-08-31 04:57:00

标签: php arrays loops if-statement foreach

我有很多变量,我想确保它们不等于某个值。

if($post[0] !== "-" && $post[3] !== "-" && $post[8] !== "-" ...) {
    // code to be executed
}

一个函数似乎是最聪明的解决方案,有点像:

function check_var($junk_value, $array) {
    foreach($array as $arr) {
        if($arr[$key]) == $junk_value) {
            return false;
        }
        else {
            return true;
        }
    }
}
$junk_value = "-";
$array = array($post[0], $post[3], $post[8], $hello);
check_var($junk_value, $array);

我对foreach循环不是很好,我不知道其他人是如何使用“$ key”的,但它输出的是它没有为我设置。我一直想知道人们如何使用“$ key”和“$ value”变量而没有定义它们。

编辑:我在这个问题上吸收了很多信息。在10分钟内,我觉得我知道的更多。谢谢你的所有答案。

3 个答案:

答案 0 :(得分:5)

if (!in_array('-', $post)) {
  // code to be executed
}

你的代码应该是

function check_var($junk_value, $array) {
  foreach($array as $val) {
    if ($val == $junk_value) {
      return false;
    }
  }

  return true;
}

答案 1 :(得分:1)

回答你的问题

  

我一直想知道人们如何使用“$ key”和“$ value”   没有定义它们的变量

您在foreach声明中引用了键:

foreach($array as $key => $value) {

答案 2 :(得分:1)

使用时

foreach($array as $arr)

此处$arr不是键所以您需要检查

 if($arr == $junk_value)

如果您还想要密钥,请使用

foreach($array as $key=>$value)

但是再次使用foreach,您同时拥有valuekey,因此无需使用$arr[$key]

相关问题