[PHP-users 36] Re: ( 再送配列を POST等で渡す時の引数について

Tetsuya Matsuzaki php-users@php.gr.jp
Wed, 13 Jun 2001 11:27:14 +0900


まつざきです。

> 
> つまり、私のやりたかった事は以下の様なフォームからtest.phpへ
> 数個のパラメーターを送る事で、添字が 0 から 32bitMAXを超える
> 値までの大量の配列を送信する訳ではありませんでした。
> -------------------------------------------------------
> <form action="test.php" method="post">
> <input type="text" name="hoge[98765432100]" value="10">
> <input type="text" name="hoge[98765432101]" value="20">
> <input type="text" name="hoge[98765432105]" value="30">
> <input type="submit" name="" value="send">
> </form>
> -------------------------------------------------------
> ネットワークの負荷はそれほどでもないと思います。
> たぶん....

なるほど、早とちりでしたね。
> 
> まつざき様の可変変数を使った場合
> > <input type="text" name="hoge0" value="10">
> > <input type="text" name="hoge1" value="20">
> > <input type="text" name="hoge2" value="30">
> 
> 試してみたところ、
> 
> $i="0";
> echo ${"hoge$i"};
> 
> で参照する事ができ、32bitを超える値でも大丈夫でした。
> 可変変数は普段あまり使わないので、すっかり存在を忘れて
> おりました。
> また、foreach のように値のある物だけループ処理をしたいのですが
> この可変変数の場合は、少し難しい感じがするのですが、
> いかがでしょうか?
> 
いろいろ方法はあると思いますが
例えば HTTP_POST_VARS を見るようにするとか
while(list($key, $val) = each($HTTP_POST_VARS)) {
  echo $key,$val;
}

> その辺りを考えているうちに、大人しく name="hoge_0" 等として
> explode等で自分で切り分けるのが一番なのかと思ってきました。
> 
そうかもね。