【发布时间】:2015-09-01 18:14:25
【问题描述】:
我有一个 php /mysqli 查询,我想用结果填充一个数组:
$query3 ="SELECT * FROM conditions";
$results = array();
if ($result = mysqli_query($conn, $query3)){
while($row = mysqli_fetch_assoc($result))
{
$results[] = $row;
}
}
print_r($results);
这里出了点问题——我认为它在数组中创建数组。 (说实话,我被这个结果弄糊涂了)
我该如何正确地做到这一点!
Array (
[0] => Array ( [condition_id] => 1 [condition_name] => Epilepsy )
[1] => Array ( [condition_id] => 2 [condition_name] => ASD )
[2] => Array ( [condition_id] => 3 [condition_name] => BESD )
[3] => Array ( [condition_id] => 4 [condition_name] => HI )
[4] => Array ( [condition_id] => 5 [condition_name] => Medical )
[5] => Array ( ...
感谢所有的帮助 - 现在我应该如何创建我真正想要的,这是一个带有 key=>value 的数组,如下所示:
array (1=>epilepsy, 2=>ASd...) - 数字指的是主键。
请问如何从这个查询中填充一个数组?
【问题讨论】:
-
$results[] = $row;您将每一行添加到您的数组中,因此每个子数组都是您数据库中的一行。问题出在哪里? -
你期待什么?
-
我想我期待像 1=>Eplisey、2=>ASD、3=>BESD 等 - 只有一个数组 - 第一个从 1 开始而不是 0。
-
$results[] = $row['condition_name']; -
@u_mulder 除了
0以数组为基础之外,它可以工作。如果 OP 想要它与上面完全相同,您需要以1为数组的基础,或者更好的是,让返回的结果集控制它$result[$row['condition_id']] = $row['condition_name'];...