0

我计算了数据库中列(字段)的数量,现在我想为每列创建一个数组。这有可能吗?例如:

$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

Instead of an array for each column you can create a array with field name as a key.

$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();
}

after this you will get the following array

print_r($field_array);

//out put

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 回答