从PHP中的循环创建多维数组



我正试图从数据库中的一些内容创建一个多维数组。

目前,我有这个,它创建了一个数组:

 $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);

相关内容

  • 没有找到相关文章