2012-01-25 14 views
1

$ _GET、$ _POST、$ _SESSION宣言の中で複数の変数を使用する方法はありますか?例えば、$_SESSION['session_array{$i}']

$iはカウンタ変数であるため、保存する各配列の名前は異なります。

$ _SESSIONに複数の連想配列を保存するには、これが必要です。これが可能な別の方法がある場合は、これも役立ちます。

答えて

5

あなたは(それぞれ$_POST, $_GET, $_SESSION, $_REQUEST、のために)

$_SESSION["session_array{$i}"] 

を行うことができます。しかし、あなたはおそらく探している、というか

$_SESSION['session_array'][$i] 

はまた、session_start()を使用することを忘れないでくださいないはずですセッション変数を使用する前に

+1

どうもありがとうございました、これは私のために働いていませんでした。 –

+0

そして>> $ _SESSION ['session_array'] [$ i]を使ってこれを行うより良い方法にseamを行います。ありがとう –

0

理由だけではなく、配列が多次元にしない:

$_SESSION['session_array'][$i] 

$_GET$_POSTスーパーグローバルについて:あなたは、GETまたはPOSTリクエストにより、手動ではなく、むしろそれにものを保存する必要はありません。だから、それは本当にIMHOの問題ではありません。

それでもあなたは次のように入力フォームを使用している場合、多次元$_POSTスーパーグローバルを持つことができます。

<form method="post" action=""> 
    <input type="text" name="name[]"> 
    <input type="text" name="name[]"> 
</form> 
0

あなたは$_SESSIONに配列を格納することができます(私も、他のものにそれをやってお勧めしません):

$session_array = array(); 
$session_array[$i] = 'some value'; 
$_SESSION['session_array'] = $session_array; 

http://www.phpriot.com/articles/intro-php-sessions/7はあなたにとって良いイントロのようです。

+0

。 。いつPOSTに配列を格納できないのですか? –

+0

@リヴィアモリソン:さて、あなたは*できます。 **非常に悪いアイデアです**。 – Ryan

+1

@minitech:なぜそれは非常に悪い考えですか?私は誰もが望む理由を考えることができませんが、なぜそれが必然的に*悪いのか分かりません*。 – FtDRbwLXw6

2

これらはすべて多次元配列をサポートします。

i。E:

$_SESSION['fruit']['apple']['green']; 
$_GET['country_list']['US']; 

または変数を持つ:

$_GET['count'][$i]; 
1

セッション:

セッションのために、あなたが行うことができます:

$_SESSION['key']=array('one','two','three'); 
echo $_SESSION['key'][1] // echos 'two' 

POST:

フォームの投稿を投稿するとを追加できます

echo $_POST['arr'][0] // echos 'a' 

GET::のようにアクセスできるように配列

<form method="POST" action='/' > 
    <input name='arr[]' type="text" value="a"> 
    <input name='arr[]' type="text" value="b"> 
    <input name='arr[]' type="text" value="c"> 
</form> 

にそれを置くために入力された名前の末尾に形と同様に

同じ、あなただけに[]を追加変数名であり、配列としてアクセスできます。

あなたはwww.yoursite.com/index.php?test[]=a&test[]=b

を訪問する場合は行うことができます:私は単一引用符ではなく二重引用符を使用していたとして

echo $_GET['test'][1] // echos 'b' 
関連する問題