[PHP-users 1040] Re: フォームで多次元の配列に値を受け取るには

Osamu Shigematsu php-users@php.gr.jp
Thu, 02 Aug 2001 19:12:37 +0900


重松です。

三村さん、SUMi さん、コメントありがとうございます。


三村さん:
> shige> ためしに以下のようなコードを書いてみたのですが、うまくいきませんでした
>> shige> 
> shige> <form method="post" action="./test.php3">
> shige> <?php print $sensor[1][1]; ?>
> shige> <input type="text" name="sensor[1][1]">
> shige> <input type="submit" value="送信">
> shige> </form>
> 
> php-3.0.18-i18n-jaではだめで、php-4.0.6ではこれでうまくいきますね。
> 
> shige> 
> shige> フォームで多次元の配列に値を受け取るにはどのようにすればよいのでしょう
> か?
> 
> なので、php4を使うと言うのがこれの解でしょう。

開発環境を指定されているので、php-3.0.18-i18n-ja を使用せざるを得ません。
将来、バージョンアップする機会が有れば、php4 に切り替えたいと考えています。

> php3でと言う事であれば、可変変数を使うのは一つのアイデアだと思います。

for(;$step;){
    // POST されてデータを配列に変換
    if(!is_array($HTTP_POST_VARS)) break;

    $$fx = array();
    $sensor_count = array();
    reset($HTTP_POST_VARS);
    while(list($k,$v) = each($HTTP_POST_VARS)){
        if(!$v) continue;
        ++$sensor_count[$v];
        $k = explode("_",$k);
        ${$fx}[$k[1]][$k[2]] = $v;
    }

のようにして、なんとかやりたいことを実現したのですが、ものすごく手間ですね。。
。PHP を本当にバージョンアップしたいです。。。

-- 
Osamu Shigematsu

http://www.ravi.ne.jp/
mailto:shige@ravi.ne.jp