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 に答える