从整数值动态创建数组。 PHP
Posted
技术标签:
【中文标题】从整数值动态创建数组。 PHP【英文标题】:Dynamically create arrays from integer value. PHP 【发布时间】:2012-07-20 08:10:01 【问题描述】:我计算了数据库中列(字段)的数量,现在我想为每一列创建一个数组。这有可能吗?例如:
$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 个不同的数组。那可能吗?如果可以,有人可以解释一下吗?
【问题讨论】:
你能举一个预期结果的例子吗? 而不是执行 mysql_fetch_array,而是查看 mysql_fetch_assoc。可能会帮助你更多 并尝试使用 mysqli,如果它是新代码,因为它工作得更好。 ***.com/questions/171400/… 例如说 db 表有 x 个字段,我想运行相同的 x 个循环,并且在每个循环中我想创建一个新数组。说 x = 3 然后我想得到 array1[]、array2[] 和 array3[] 创建数组很容易。for ($i = 0, $l = 3; $i < $l; $i += 1) $array = array(); $array[] = X;
。你为什么要那个?你想在它们消失之前对它们做什么,或者你不能访问它们,因为你不知道它们叫什么?您实际上想在数组中放入什么或对它们做什么?如果你想创建一个 2D 矩阵,你最好先创建一个。
【参考方案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()
)
【讨论】:
【参考方案2】:我不知道你为什么要这样做..但有可能..
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 变量
但是,我真的建议不要这样做并重新考虑您的设计,必须有更好的方法来做到这一点。
【讨论】:
以上是关于从整数值动态创建数组。 PHP的主要内容,如果未能解决你的问题,请参考以下文章