2016-07-26 7 views
0

ブール値を持つ$a,$b,$c,$dという複数の変数があります。 私は何をしようとしています。
複数の条件が真であるPHP

if($a){echo 1;} 
if($b){echo 2;} 
if($c){echo 3;} 
if($d){echo 4;} 
and so on.. 50 variables 

これを実行する方法はありますか?
注:複数の変数が真である可能性があります。

+3

ループとtrueの場合、反復の現在の数をエコー。これはまさにループが目的とするものです。 – Aaron

+1

[配列?](http://php.net/manual/en/language.types.array.php) – DontVoteMeDown

+0

可能であれば配列を使用し、foreachループやその他のループで条件を追加することができます – MKD

答えて

1

たぶん私はあなたがこのような何かを探しているのだと思いブール配列内のすべてのブール変数を入れて、値

$boolArray = array(); 
$boolArray[0] = array($a, 1); 
$boolArray[1] = array($b, 2); 
$boolArray[2] = array($c, 3); 


... 

for($x = 0; $x < count($boolArray); $x++) { 
    if ($boolArray[x][1]) { 
    echo (string)$boolArray[x][2]; 
    } 
} 
+1

@ Marc Giroux:編集。 .. – Grace

0

をチェックするために、配列を反復します。

<?php 
# Define the settings you already have 
$a = true; 
$b = true; 
$c = true; 

# Create an array with letters from a to z 
# Instead of this, you can create an array of field names like array('a', 'b', 'c', 'd'); 
$options = range('a', 'z'); 

# Loop in the letters from above 
foreach($options as $id => $letter) { 

    # Check if variable exists and boolean is true 
    if(isset(${$letter}) && ${$letter} === true) { 

     # Output number from id 
     echo $id + 1; 
    } 
} 
?> 
1

あなたは反復するために、このコードを使用することができます:順番に変数を介し

$a= $b = $c = TRUE; 
$array = array(0=> $a,1=>$b,2=> $c); 
foreach($array as $key => $value){ 
    if($value){ 
     echo $key; 
    } 
} 
関連する問題