ブール値を持つ$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
これを実行する方法はありますか?
注:複数の変数が真である可能性があります。
ブール値を持つ$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
これを実行する方法はありますか?
注:複数の変数が真である可能性があります。
たぶん私はあなたがこのような何かを探しているのだと思いブール配列内のすべてのブール変数を入れて、値
$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];
}
}
@ Marc Giroux:編集。 .. – Grace
をチェックするために、配列を反復します。
<?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;
}
}
?>
あなたは反復するために、このコードを使用することができます:順番に変数を介し
$a= $b = $c = TRUE;
$array = array(0=> $a,1=>$b,2=> $c);
foreach($array as $key => $value){
if($value){
echo $key;
}
}
ループとtrueの場合、反復の現在の数をエコー。これはまさにループが目的とするものです。 – Aaron
[配列?](http://php.net/manual/en/language.types.array.php) – DontVoteMeDown
可能であれば配列を使用し、foreachループやその他のループで条件を追加することができます – MKD