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

时间:2014-04-10 20:31:54

标签: php arrays multidimensional-array

我正在尝试使用数据库中的某些内容创建多维数组。

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

 $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,所以任何帮助或指针都会非常感激。

3 个答案:

答案 0 :(得分:1)

两个不错的选择:

如果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']);

答案 1 :(得分:0)

我会使用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);

答案 2 :(得分:0)

只需将您想要的项目嵌套在数组中:

$js_arr[] = [
    'todo_content' => $row['todo_content'],
    'todo_id'      => $row['todo_id']
];

$js_arr[]部分不可能是任何其他部分,因为任何其他语法都不会无条件地将元素添加到多维数组的末尾。