0


0

Php $ _GET号
foreach ($_GET as $field => $label)
{
   $datarray[]=$_GET[$field];
   echo "$_GET[$field]";
   echo "
";
}
print_r($datarray);

'' '' '

これは私が得ている出力です。 データがdatarrayにあるのがわかりますが、 `$ _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
                 )
)

8 Answer


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"


1


編集:私があなたのテストを完了したときに、ここに最終的なURLがありました:

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

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

結論:Flashファイルを修正してください。


0


``を使う

 tags before print_r, then you will have a tree printed (or just look at the source. From this point you will have a clear understanding of how your array is and will be able to pull the value you want.

I suggest further reading on $_GET variable and arrays, for a better understanding of its values


0


配列に対してechoを呼び出すと、常に "Array"が出力されます。 print_r(PHPマニュアルから)は、変数についての人間が読める情報を出力します。


0


これを試して:

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

echo $ _GET [$ field]; //本当に引用符は必要ありません

echo "引用符付き:{$ _GET [$ field]}"; //しかしそれらを使いたい場合

echo $ field; //これはecho $ _GET [$ field]と同じです。

if($ label == $ _GET [$ field]){echo "常にtrueであるべきです"; }     エコー " "; print_r($ datarray);


0


あなたが言うときにそれはちょうど "配列"を印刷している

 echo "$_GET[$field]";

PHPはあなたが $ _GET`要素の $ field`を意味していることを知ることができません、それはあなたが変数 `$ _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`から別の配列にデータを抽出したいのですか?


-1


おそらく、GET変数は配列そのものなのでしょうか。 すなわち http://site.com?var%5B%5D=1


-1


あなたのGET引数はそれ自体が配列であるように見えます。 入力と出力があると便利です。