1

我很抱歉描述模糊的标题。这就是我要的:

if($a[$f] === false || $a[$g] === false || $a[$h] === false || $a[$i] === false || $a[$j] === false)
{
  // do something
}

我想对实际触发语句的条件做一些事情(如果 a[$f] = true 并且 a[$g] = false,我想对 $g 做一些事情)。

我知道在这种情况下,第一个为真的语句(即 $a[$g] == false)会触发。但是有什么方法可以用 $g 做点什么吗?我以前在编程生活中从未见过这种情况,似乎也找不到任何关于它的信息。

提前致谢。

- - 编辑 - -

我忘了提:我在所有数组数据上使用了一个函数。所以,缩短,我明白了:

if(valid($a[$f]) === false || valid($a[$g]) === false)
{
  // do something
}

--- 编辑 2 ---

我在课堂上的这段基于 OOP 的 PHP 是我的代码。

if($this->validatedText($product[$iName]) == false ||
            $this->validatedUrl($product[$iUrl]) == false ||
            $this->validatedNumber($product[$iTax]) == false ||
            $this->validatedValuta($product[$iPrice]) == false || 
            $this->validatedText($product[$iArticleNumber]) == false || 
            $this->validatedText($product[$iDescription]) == false || 
            $this->validatedText($product[$iMetaDescription]) == false || 
            $this->validatedText($product[$iTitle]) == false)
        {
            // do something with the first iVariable
        }
4

1 回答 1

1

最简单的解决方案是

if(false!==($sIndex = array_search(false, $a, 1)))
{
   //your $sIndex is first index with false value
}

如果你想要所有的钥匙,你可以使用array_filter(),像这样:

$rgFalse = array_keys(array_filter($a, function($x)
{
   //here valid is your function
   return false===valid($x);
}));
于 2013-10-02T13:17:18.603 回答