0

だから私は変数のリストを持っています

$TestData1="Hello";
$TestData2="";
$TestData3="0";
$TestData4="Yes";
$TestData5=" ";
$TestData6="No";

これらすべての変数をフィルターを介して実行する関数を作成したいと考えています。これを、すべての変数を一度にチェックするループにしたいと考えています。変数名を配列に格納するという考えがありました。これを以下に示します。

$TestArray=array("TestData1", "TestData2", "TestData3", "TestData4","TestData5","TestData6");

したがって、私の主な質問は、配列内のこれらの名前を取得して、特定の条件が満たされているかどうかを確認するループを実行する方法です。以下の例。

foreach ($TestArray as $Data):

   $VariableToTestConnditions="$".$Data;



endforeach;

そのステートメントが機能しないことはわかっていますが、それが私が考えることができるすべてです。この結果、変数値 =="Yes" の場合、元の変数の値が "N/A" に変更されます。したがって、すべての変数をチェックした後、$TestData4 を "N/A" に変更します。

4

3 に答える 3

6

名前の配列を使用する代わりに、連想配列 (キーと値のペア) を使用する方が理にかなっています。

$TestArray = array(
    "TestData1" => "Hello",
    "TestData2" => "",
    "TestData3" => "0",
    "TestData4" => "Yes",
    "TestData5" => " ",
    "TestData6" => "No"
);

変数をテストしたい場合:

foreach($TestArray as $key => $value) {
    if($VariableToTestConnditions == $value) {
        //do something 
    }
}

testdata の値を変更したい場合:

$TestArray["TestData1"] = "Good Bye";

この方法ははるかにきれいで簡単です。

于 2013-08-23T02:22:18.103 に答える
2

エコーを使用して構文のデモを行いました。好きなものを使用できます

$TestData1="Hello";
$TestData2="";
$TestData3="0";
$TestData4="Yes";
$TestData5=" ";
$TestData6="No";

$TestArray=array("TestData1", "TestData2", "TestData3", "TestData4","TestData5","TestData6");


foreach($TestArray as $a){

echo ${$a};
 //or 
echo $$a;

}
于 2013-08-23T02:21:32.693 に答える
2

2 ドル記号を使用します。

PHP 変数変数を参照してください: http://php.net/manual/en/language.variables.variable.php

foreach ($TestArray as $Data):

   $VariableToTestConnditions=$$Data;

endforeach;
于 2013-08-23T02:23:02.517 に答える