- ベストアンサー
関数内の配列$list[0]~$list[20]を、GETで渡したい
関数内で生成した配列$listを、GETで渡す方法ってあるでしょうか。 只の変数$hogeなら例えば $hoge = 'AAA'; ●●.php?$mode=sort&hoge2=$hoge でリンクし if($mode=="sort") 内で、$hoge2として扱えますが 配列$hoge[0]~$list[20]とかを渡すときはどうすればいいでしょうか。 メモリーが心配なので、できれば参照で渡したり、グローバル化して受け取るなどの方法を使いたいです。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
比較的大きなデータであれば、 ・POSTで渡す ・セッションを利用してサーバ側に保存しておく ・キーだけGETで●●.phpに渡して、●●.phpで再度CSVからデータを取得する などの方法があります。参考まで。
その他の回答 (1)
- fdsjaklfjas
- ベストアンサー率81% (96/118)
●●.php?$mode=sort&list[0]=a&list[1]=b&list[2]=c&... としてやれば、よいのではないでしょうか。 (通常、"["や"]"はURLエンコードした方がよいですが)。 ●●.phpでは、 $list = $_GET['list']; // register_globals=on なら不要 echo $list[0]; // aが出力される。 echo $list[1]; // bが出力される。 ・・・ となると思います。 > メモリーが心配なので、できれば参照で渡したり、グローバル化して受け取るなどの方法を使いたいです。よろしくお願いします。 返答が難しいのですが「できない」と思ったほうがよいと思います。 ユーザ単位の情報はsession(ファイル等)に、複数ユーザで共有する情報はファイル/DB/共有メモリなどに保存することが出来ますが、結局のところサーバ側のメモリを節約する目的にはかないません。
補足
ご連絡ありがとうございます。 ●●.php?$mode=sort&list[0]=a&list[1]=b&list[2]=c&... も考えましたが、$listはCSVファイルから読み取った値を 保持しているので結構大きく、項目も多いのでgetで 渡すには考え物です。 結構難しそうですね。
お礼
なるほど、再度CSVからデータを取得する方法が無難かもしれないです。取得に必要なキーだけPOSTで渡してもいいということですね。ありがとうございました。