0
foreach ($_GET as $field => $label)
{
   $datarray[]=$_GET[$field];
   echo "$_GET[$field]";
   echo "<br>";
}
print_r($datarray);

これは私が得ている出力です。データがdataarrayにあるのがわかりますが、echo $_GET[$field]

「配列」しか得られない

しかし、print_r($datarray)すべてのデータを印刷します。これらの値をどのように引き出すか考えていますか?

出力

Array ( 
        [0] => Array ( 
                 [0] => Grade1 
                 [1] => ln 
                 [2] => North America 
                 [3] => yuiyyu 
                 [4] => iuy 
                 [5] => uiyui 
                 [6] => yui 
                 [7] => uiy 
                 [8] => 0:0:5 
                 ) 
)
4

8 に答える 8

1

var_export($_GET)取得している配列の種類をより簡単に確認するために使用します。

スクリプトの出力から、複数のネストされた配列があることがわかります。それは次のようなもののようです:

$_GET = array( array( array("Grade1", "ln", "North America", "yuiyyu", "iuy", "uiyui", "yui","uiy","0:0:5")))

これらの変数を取得するには、次のようなものが必要です。

echo $_GET[0][0][0]; // => "Grade1"
于 2008-09-17T15:04:24.083 に答える
1

編集: テストが完了したときの最終的な URL は次のとおりです。

http://hofstrateach.org/Roberto/process.php?keys=Grade1&keys=Nathan&keys=North%20America&keys=5&keys=3&keys=no&keys=foo&keys=blat&keys=0%3A0%3A24

これはおそらく不正な URL です。クエリで重複キーを渡すと、PHP はそれらを配列にします。上記の URL は、おそらく次のようになります。

http://hofstrateach.org/Roberto/process.php?grade=Grade1&schoolname=Nathan®ion=North%20America&answer[]=5&answer[]=3&answer[]=no&answer[]=foo&answer[]=blat&time=0%3A0%3A24

これにより、ほとんどのフィールドに個別のエントリが作成され、 $_GET['answer'] がユーザーによって提供された回答の配列になります。

結論: Flash ファイルを修正します。

于 2008-09-17T15:34:12.327 に答える
0

これを試して:

foreach ($_GET as $field => $label)
{
    $datarray[]=$_GET[$field];

    echo $_GET[$field]; // you don't really need quotes

    echo "With quotes: {$_GET[$field]}"; // but if you want to use them

    echo $field; // this is really the same thing as echo $_GET[$field], so

    if($label == $_GET[$field]) {
         echo "Should always be true<br>";
    }
    echo "<br>";
}
print_r($datarray);
于 2008-09-17T15:46:39.923 に答える
0

配列でエコーを呼び出すと、常に「配列」が出力されます。print_r (PHP マニュアルから) は、変数に関する人間が読める情報を出力します。

于 2008-09-17T15:00:04.560 に答える
0

<pre>の前にタグを使用print_rすると、ツリーが出力されます (または、ソースを確認します。この時点から、配列がどのようになっているかを明確に理解し、必要な値を取得できるようになります。

その値をよりよく理解するために、$_GET変数と配列についてさらに読むことをお勧めします

于 2008-09-17T14:48:48.643 に答える
0

あなたが言うとき、それはちょうど「配列」を印刷しています

 echo "$_GET[$field]";

PHP は、あなたが$_GETelementを意味していることを認識できません$field。それは、 variable を出力しようとしていると見なします$_GET。それで、それを印刷しようとします。もちろん、それは配列なので、それが得られます。通常、配列要素をエコーする場合は、次のようにします。

echo "The foo element of get is: {$_GET['foo']}";

中括弧は、全体が解釈される必要のある変数であることを PHP に伝えます。それ以外の場合、変数名は$_GETそれ自体であると想定されます。

あなたの場合、それは必要ありませんが、必要なのは次のとおりです。

foreach ($_GET as $field => $label)
{
    $datarray[] = $label;
}

印刷したい場合は、

echo $label; // or $_GET[$field], but that's kind of pointless.

問題はフラッシュ ファイルにあるのではなく、元の状態に戻してください。$dataarray 変数にすべてのデータが含まれていたため、それが正しかったことがわかります。$_GETとにかく別の配列からデータを抽出したいのはなぜですか?

于 2008-09-17T17:53:17.890 に答える
-1

GET 引数自体が配列のようです。インプットだけでなく、アウトプットもできると助かります。

于 2008-09-17T15:04:05.503 に答える
-1

おそらく、GET 変数自体が配列なのでしょうか? すなわちhttp://site.com?var[]=1&var[]=2

于 2008-09-17T14:51:41.117 に答える