0

DB 内の列 (フィールド) の数を数えます。各列の配列を作成したいと思います。これはどういうわけか可能ですか?例えば:

$num = mysql_num_fields($query);
for($i=0; $i<$num; $i++){     // loop 1
    $field_names[] = mysql_field_name($query,$i);
}
for($i=0; $i<$num; $i++){    // loop 2
    while($row = mysql_fetch_array($query)){  // loop 3
        $array[] = $row[$field_names[$i]]
    }
}

今、私は基本的に $array[] 変数をループ 2 が終了するたびに変更して、たとえば 3 つのループの最後に 3 つの異なる配列を持つようにしたいと考えています。それは可能ですか?もしそうなら、誰かが説明してもらえますか?

4

2 に答える 2

1

各列の配列の代わりに、フィールド名をキーとして持つ配列を作成できます。

$num = mysql_num_fields($query);
for($i=0; $i<$num; $i++){     // loop 1

    $field_names = mysql_field_name($query,$i);
    $field_array[$field_names] = array();
}

この後、次の配列を取得します

print_r($field_array);

//出力

Array(
[fieldname1] => Array() 
[fieldname2] => Array() 
[fieldname3] => Array() 
[fieldname4] => Array() 
)
于 2012-07-21T05:28:52.840 に答える
0

なぜあなたがそれをしたいのかわかりません..しかし、それは可能です..

for($i=0; $i<$num; $i++){    // loop 2
    while($row = mysql_fetch_array($query)){  // loop 3
        $arrayName = "array$i";
         ${$arrayName}[] = $row[$field_names[$i]]
    }
}

したがって、ループが 3 つある場合、$array1、$array2、$array3 変数を持つことになります。

しかし、繰り返しますが、私は本当にこれに反対し、あなたのデザインを再考することをお勧めします.もっと良い方法があるはずです.

于 2012-07-21T05:37:41.077 に答える