我正试图从数据库中的一些内容创建一个多维数组。
目前,我有这个,它创建了一个数组:
$js_arr = [];
while($row = mysqli_fetch_array($r->query)){
$js_arr[] = $row['todo_content'];
}
返回:
Array ( [0] => first [1] => tester [2] => first item [3] => Hello!)
但是,我还需要获取$row['todo_id']
。
我试过了,但它只为第一行创建了一个数组:
$js_arr = [];
while($row = mysqli_fetch_array($r->query)){
$js_arr['todo_content'] = $row['todo_content'];
$js_arr['todo_id'] = $row['todo_id'];
}
返回:
array(2) { ["todo_content"]=> string(3) "hey" ["todo_id"]=> string(2) "90" }
我仍在学习PHP,所以任何帮助或建议都将不胜感激。
两个不错的选择:
如果todo_id
是唯一的,则将其作为密钥:
$js_arr[$row['todo_id']] = $row['todo_content'];
或者对于多维数组,如果您不止有todo_content
:,则需要
$js_arr[] = array('todo_content' => $row['todo_content'], 'todo_id' => $row['todo_id']);
只需在数组中嵌套您想要的项:
$js_arr[] = [
'todo_content' => $row['todo_content'],
'todo_id' => $row['todo_id']
];
$js_arr[]
部分不能是任何其他部分,因为任何其他语法都不会无条件地将元素添加到多维数组的末尾。
我会使用ID作为密钥:
while($row = mysqli_fetch_array($r->query)){
$js_arr[$row['todo_id']]['todo_content'] = $row['todo_content'];
}
或者——假设你需要从数据库中得到的一切:
while($row = mysqli_fetch_array($r->query)){
$js_arr[$row['todo_id']] = $row;
}
你可以用什么来替换(没有循环,但没有ID作为密钥):
$js_arr = mysqli_fetch_all($r->query);