我有一个多维数组,我试图从SQL查询构建。我在内部数组中添加id
时遇到麻烦。
$checkboxes = "SELECT id, name FROM review_sites WHERE active=1 ORDER BY name ASC";
$result = mysql_query($checkboxes) or die(mysql_error());
$names = array();
while ($row = mysql_fetch_array($result)) {
$names[]['name'] = $row['name'];
}
当前数组看起来像:
Array
(
[0] => Array
(
[name] => 411.ca
)
[1] => Array
(
[name] => AutoMD
)
我需要数组看起来像这样:
Array
(
[0] => Array
(
[id] => 4
[name] => 411.ca
)
[1] => Array
(
[id] => 9
[name] => AutoMD
)
您只在查询中选择id
和name
,因此,在循环中:
while ($row = mysql_fetch_assoc($result)) {
$names[] = $row;
}
或简单的:
while ($names[] = mysql_fetch_assoc($result)) {}
注意,mysql_fetch_assoc()
只返回一个关联数组。mysql_fetch_array()
返回一个关联的数字索引数组。
:
此扩展在PHP 5.5.0中已弃用,并将在PHP 5.5.0中删除未来。相反,应该使用MySQLi或PDO_MySQL扩展名。请参见MySQL:选择API指南和相关FAQ了解更多信息信息。此函数的替代方法包括:mysqli_fetch_array () PDOStatement: fetch ()
如果你要使用MySQLi扩展,那么你可以使用:
$names = mysqli_fetch_all($result, MYSQLI_ASSOC);
$checkboxes = "SELECT id, name FROM review_sites WHERE active=1 ORDER BY name ASC";
$result = mysql_query($checkboxes) or die(mysql_error());
$names = array();
while ($row = mysql_fetch_array($result)) {
$names['id'] = $row['name'];
}
var_dump($names);