PHP - 在创建数组时(mysql_fetch_array)程序在数组中创建数组
Posted
技术标签:
【中文标题】PHP - 在创建数组时(mysql_fetch_array)程序在数组中创建数组【英文标题】:PHP - while creating array (mysql_fetch_array) program creating array in array 【发布时间】:2016-08-31 21:29:56 【问题描述】:我要创建数组:
$branza_query = mysql_query ('SELECT craft FROM base') or die...
$craft = array();
while ($cra = mysql_fetch_array($craft_query))
$craft[] = $cra;
没什么大不了的,但是当我想print_r
它时,我有这样的结果:
Array ( [0] => Array ( [0] => steel [craft] => steel )
[1] => Array ( [0] => farm [craft] => farm )
[2] => Array ( [0] => some [craft] => some )
[3] => Array ( [0] => it [craft] => it ) // etc.
)
我只想将下一个值添加到现有数组,结果如下:
Array ( [0] = steel
[1] = farm
[2] = some
[3] = it /etc.
)
或
Array ( [0] = craft => steel
[1] = craft => farm
[2] = craft => some
[3] = craft => it /etc.
)
或类似的东西,因为接下来我想做的是:
foreach($craft as $value)
echo '<option value ="'.$value.'"> '.$value.'</option>';
【问题讨论】:
指向索引,$cra['craft']
或 $cra[0]
所以现在的结果是:Array ( [0] => Array ( [0] => it [craft] => it ) [1] => Array ( [0] => farm [craft] => farm )
等等,所以这并不能解决问题
你没有理解我的意思,指向数组的确切元素,$craft[] = $cra[0];
或$craft[] = $cra['craft'];
哦,我明白了。非常感谢:)现在它工作得很好:)
【参考方案1】:
问题是您每次调用$craft[]=$cra
时都会创建一个以$cra
作为其第一个元素的数组,然后将其添加到$craft
。这就是为什么你有一个三层数组的结果。
但实际上,$cra
已经是一个数组。所以你需要做的只是array_push($craft, $cra);
。或使用array_push($craft, $cra[0]);
这将提供您想要的。
请参考页面http://php.net/manual/en/function.mysql-fetch-array.php
【讨论】:
以上是关于PHP - 在创建数组时(mysql_fetch_array)程序在数组中创建数组的主要内容,如果未能解决你的问题,请参考以下文章
从使用 MySQL _FETCH 设置的字符串中删除双引号的最佳方法是啥?
php, mysql, "Else 在 while 语句之后