2017-09-29 20 views
0

私は一般的な質問があります。 $ _POST変数に配列の配列を追加するためのコードを以下に書きました。私はポスト変数も配列であることを知っています。したがって、私の多次元配列をポスト変数に1つずつ追加した後、データを表示するためにprint_rを試みましたが、1つの配列だけが出力されました。

なぜ1つの配列しか印刷されないのですか?

$x = 0; 
    for($x; $x < count($return_auth); $x++){ 
     $_POST = $return_auth[$x]; 
    } 

print_r($_POST); 
+0

私たちの明らかな質問は、$ return_authとは何ですか?それがあればダンプを入れてください。 – Andreas

+0

PHPスーパーグローバルを変更しないでください。これまで*必要なデータを取り出して、別の場所に置きます。 – Sammitch

答えて

1

使用これはあなたのループの

$_POST[] = $return_auth[$x]; 

編集

これは、今あなたが例

のために(FOO)にアクセスすることができ
$_POST['something' . $x] = $return_auth[$x]; 

良く動作します
$_POST['somethingfoo']; 
+0

良いキャッチ。表示されませんでした – Andreas

+0

'$ _POST'グローバルの数字インデックスの右側に何かがないようです。ネガティブなものを見つけられませんが、これには注意が必要です。 – nerdlyist

2

あなたがやっていることは、投稿を上書きすることです。

3

...あなたがループ配列を作成するために、配列をする理由がない限り

$_POST[return_auth] = $return_auth; 

nerdlyist答えは絶対的に正しいですが、私は思うものの:あなたはこのような何かを行うことができ、ここで持っているものに基づいて、つまり、正しい方法ではありません。要するに、$ _POST変数を変更しています。また、$ _POST変数には、そのPOST要求で送信されたすべてのパラメータが含まれているという意味があります。上書きすると変更はアプリケーション全体で影響を受け、アプリケーションで実行されている他のモジュールには、その要求で実際には送信されないPOSTパラメータが追加されます($ IMO以外の$ _POST配列)。

+0

軽く取るべきではない良い点。私の直感はPOSTとGETを混乱させないようにすることでしたが、私はそれについてはわかりませんでした。 POSTをコピーしてコピーしたほうがいいです。 – Andreas

+0

アプリケーションのその部分にデータが送信されない限り(POSTまたはGET)、アプリケーションの他のモジュールにはこれが表示されません。 $ _POSTは、フォームデータがapiで言うように変更してから再送信することができます。 – nerdlyist