2016-04-25 8 views
-6

ブール値を持つ配列を持っています。ブール値の論理値に対して論理演算を実行します。

$myarray = array(true, false, false, true, false); 

は今、私は私の配列の値にいくつかの論理演算を実行したいので、私は、出力を得る:私の配列から

FALSE 

を。

+3

あなたの希望する結果はここにありますか? – Maximus2012

+1

なぜvar_dump()を実行し、var_dump()によって返された結果をエコーし​​ますか? –

+2

興味深い、またここで言及:http://php.net/manual/en/function.implode.php#104568 – dchayka

答えて

1

あなたはこの試みることができる:ビット少ないエレガント

$res = true; 
foreach ($myarray as $item) $res &= $item; 
echo var_dump($res); 

を、それが動作するはずです。ここではビットロジックを使用しているので、最後には整数がありますが、改善することができます。あなたが根本的に間違っている文字列、ブール値として扱うしようとしている

$res = true; 
foreach ($myarray as $item) $res |= $item; 
echo var_dump($res); 
+0

ソリューションありがとうございました – Nabi

4

:あなたは、ほぼ同じことを行うことができORケースでは

。あなただけfalseのためのあなたの配列を検索することができ、そしてそれはだ場合

function all(array $values) { 
    foreach ($values as $value) { 
     if (!$value) { 
      return false; 
     } 
    } 
    return true; 
} 

if (all($myarray)) ... 
+0

ソリューションありがとうございました – Nabi

2

$res = array_reduce($myarray, function ($a, $b) { return $a && $b; }, true); 
                // default value ^^^^ 

以上の効率的な短絡all機能:何が欲しいのは例えば、配列の削減、あります現在、trueを返すfalseを返し、そうでない場合:

$result = (array_search(false, $myarray, true) === false); 

あなたの質問を編集したので、0または1を返すようにしたい場合:

+0

ありがとうございました – Nabi