• ベストアンサー

関数内の配列$list[0]~$list[20]を、GETで渡したい

関数内で生成した配列$listを、GETで渡す方法ってあるでしょうか。 只の変数$hogeなら例えば $hoge = 'AAA'; ●●.php?$mode=sort&hoge2=$hoge でリンクし if($mode=="sort") 内で、$hoge2として扱えますが 配列$hoge[0]~$list[20]とかを渡すときはどうすればいいでしょうか。 メモリーが心配なので、できれば参照で渡したり、グローバル化して受け取るなどの方法を使いたいです。よろしくお願いします。

  • reimy1
  • お礼率64% (244/379)
  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

比較的大きなデータであれば、 ・POSTで渡す ・セッションを利用してサーバ側に保存しておく ・キーだけGETで●●.phpに渡して、●●.phpで再度CSVからデータを取得する などの方法があります。参考まで。

reimy1
質問者

お礼

なるほど、再度CSVからデータを取得する方法が無難かもしれないです。取得に必要なキーだけPOSTで渡してもいいということですね。ありがとうございました。

その他の回答 (1)

回答No.1

●●.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/共有メモリなどに保存することが出来ますが、結局のところサーバ側のメモリを節約する目的にはかないません。

reimy1
質問者

補足

ご連絡ありがとうございます。 ●●.php?$mode=sort&list[0]=a&list[1]=b&list[2]=c&... も考えましたが、$listはCSVファイルから読み取った値を 保持しているので結構大きく、項目も多いのでgetで 渡すには考え物です。 結構難しそうですね。

関連するQ&A

  • JAVAのNEW配列生成とガベージコレクション解放

    ある本に、IF文内での、JAVAの配列生成で、IF文のブロックを内で生成した配列が、ブロックを抜けた際の挙動が異なると書いてありました。 NEWを使わないで生成した配列では、解放されるが(例 int[] k = {10 , 20 , 30}; ) NEWを使って生成した配列(例 int[] hoge = new int {3}; )は メモリー内に残ってしまうということでしたが、多分その後 ガベージコレクションで解放されると思いますので問題はないのですが 両者とも、メモリー内に作成(用意)された同じような変数の箱を利用しているのに どうして挙動が異なるのでしょうか? NEWを使わないで生成した配列kは、例えばk[0]の中にアドレス参照でなく 10という値がそのまま入るのでしょうか? 分かりやすく教えていただけると助かります。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 多次元配列の並び変えについて

    <?php $food["a"]["1"]= "hoge1"; $food["b"]["2"]= "hoge2"; $food["c"]["3"]= "hoge3"; $food["d"]["4"]= "hoge4"; ?> 上記の配列について、1,2,3,4のキーの順番でソートしたいのですが、うまく出来ません。 一次元配列だと簡単なのですが、二次元配列だとどうやったらよいのでしょうか? array_multisortを使うと、多次元でも並び変えはできると他のサイトで読みましたが、 これは結局値でソートしてますよね? 私は純粋にキーのみでソートしたいのですが、色々調べているのですがどうも複雑なプログラムを 書かないとできないような気がしてきました。

    • 締切済み
    • PHP
  • CRON でPHPスクリプトをGET変数付きで実行したい

    CRONで下記のようにPHPスクリプトをGET値(hoge=1)を付加して実行したいのですがうまくできません。 */1 * * * * php path/myscript.php?hoge=1 CRONでPHPスクリプトを実行する場合、GET変数は使えないのでしょうか? ご教授お願いいたします。

    • ベストアンサー
    • PHP
  • 2つの配列を比較し、一致しないのを得たいのですが

    連想配列 $foo = array( "aaa" => "111", "bbb" => "222", "ccc" => "333" ); と 一般配列 $bar = array( 0 => "aaa", 1 => "bbb" ); がある場合に、$iを数字として、 $fooのkey部と$bar[$i]の値が一致したら(つまり、例えばaaa)、 $fooの中のその部分は除去するような事がやりたいのですがどのようにすればいいのでしょうか? 色々試してみましたが、自分には全く出来ませんでした。 除去ではなく、新しい配列に $hoge = array( "ccc" => "333" ) のような形で入れ込むのでもいいのですが、とくかく$hogeのような配列を手に入れたいと考えております。 アドバイス頂けないでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • Generic.Listに1次元配列の配列を格納したい(VB2005)

    VB2005の質問です。 変数ghogeにString型の1次元配列の配列を格納したいと考えています。 ----------------------------------------------- 'a) Dim hoge()() As string = _       {New string() {"a1", "b1", "c1"}, _       New string() {"a2", "b2", "c2"}, _       New string() {"a3", "b3", "c3"}} Dim ghoge As New Generic.List(of )   'b) MessageBox.Show(ghoge(1)(1))      ' "b2"と表示したい ----------------------------------------------- 質問内容は、(a)を(b)の初期値として設定するにはどのようにすればよいか、ということです。 (b)がGeneric.ListでなくArrayListの場合だと、   Dim ghoge As New ArrayList(hoge) でhoge配列を格納できますが、Generic.Listの場合はどのような構文にすればよいでしょうか。 現在は、下記のような処理でghogeに値を格納しています。 ------------------------------------------------------------ Dim ghoge As New Generic.List(Of Generic.List(Of String)) Dim aryhoge1 As New Generic.List(Of String)(New String() {"a1", "b1", "c1"}) Dim aryhoge2 As New Generic.List(Of String)(New String() {"a2", "b2", "c2"}) gary_hoge.Add(ary_hoge1) gary_hoge.Add(ary_hoge2) MessageBox.Show(gary_hoge(1)(1))    ' "b2"と表示される ------------------------------------------------------------ どうぞよろしくお願い致します。

  • 多次元配列でソートしたい

    たとえば、Yahooオークションとかで、「商品名」「価格」「残り日数」が表示されていて、 それぞれをクリックすると、その列をソートして全体を昇順・降順に並べ替えてくれますよね。 あれを自前のCGIで実現したいのです。 たとえば、3次元配列$hoge[X][Y][Z]を定義し、ここがクリックされたらXをキーにソート、ここがクリックされたらYでソートということをやりたいと思っているのですが、当然こういう機能は無いわけで、自分で作らなくてはいけません。 連想配列とかポインタとか色々考えたのですが、うまく行かず・・・。 どのような実装方法があるでしょうか、アイデアをお聞かせ願えたら嬉しいです。

    • ベストアンサー
    • Perl
  • 多次元配列?配列のキー?変数の型?

    PHP勉強中のものです。 予定通りの動作にならんく四苦八苦しています。 どのように修正すれば予定通りになるのか考え方のアドバイスなどお願いします。 処理したいこと 変数$xxxの先頭の文字と最後の文字をsubstr()で取り出し$aaaと$bbbに別けそれぞれ代入しキーとして多次元配列に代入した配列要素を指定してechoで出力したい 試してみたこと $aaa1と$bbb1に直接整数を代入してみたところ、echoで出力された キーになる変数を整数型として変数に代入してみたが希望通りの動作にならなかった。 なにかアドバイス頂けると助かります。 $array = array( "0" =>array("あいうえお","かきくけこ"), "1" =>array("さしすせそ") ); $xxx = "0-1"; $aaa = substr($xxx,0,1); $bbb = substr($xxx,2); $aaa = (int)$aaa; $bbb = (int)$bbb; echo $array[$aaa][$bbb]; //出力されない $aaa1 = 0; $bbb1 = 1; echo $array[$aaa1][$bbb1]; //出力された $aaa = (int)$aaa; $bbb = (int)$bbb; echo $array[$aaa][$bbb]; //出力されない

    • ベストアンサー
    • PHP
  • 配列の中身を順番に可変長定義関数に渡すには

    好きなだけ引数が渡せる関数があり、その引数に任意の配列の中身をeval関数を使わずに一つずつ渡したいのですが、どうすればいいのでしょうか。eval関数を使った場合は以下のような感じです。 $list=array("apple","banana","orange"); function hoge(){ print_r(func_get_args()); } $arg=implode ('","',$list); eval('hoge("'.$arg.'");');//hoge("apple","banana","orange"); よろしくお願いいたします。

    • 締切済み
    • PHP
  • 関数戻り値が連想配列の場合

    こんにちわ。 PHP5について質問です。 あるユーザ関数の戻り値が連想配列である場合、 ユーザ関数の実行~戻値の特定のキーの値を取得 までを1行で取得する方法があれば教えてください。 例) function hoge() {  return array("fuga" => "1", "moge" => "2"); } ここで"moge"の値を一発で参照したいと考えています。 通常では、 $result = hoge(); print $result["moge"]; のようにしていますが、これを一行で実現できる方法はありますでしょうか。

    • ベストアンサー
    • PHP
  • phpで 変数の中にデータが入っているかどうかを判別する

    phpで変数の中が空なら・・・ という命令を書く場合 if($hoge == "")とか if(isset($hoge)) という風に書くとおもうんですが、 変数の中身が配列で、その配列の一つでもデータが入っているかどうかを 判別する方法はないのでしょうか? 例えば、 $hoge = array([1] = りんご,[2] = )  と  $hoge = array([1] = ,[2] = ) で、表示結果を変えたいということです。 配列を一旦分解するしかないのでしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう