如何将mysqli结果集行作为索引子数组存入结果数组?
调整MySQLi结果集循环,生成目标数组结构
嘿,这事儿很简单,我帮你改下while循环就能搞定!核心就是要让每次循环取出的行是索引数组,而不是关联数组,然后把它直接存入$rows['data']数组里。
修改后的代码示例
假设你的MySQLi结果集变量是$result,先初始化好目标数组,再用fetch_row()来获取索引形式的行数据:
// 初始化目标数组 $rows = ['data' => []]; // 循环遍历结果集,将每行索引数组存入$data while ($row = $result->fetch_row()) { $rows['data'][] = $row; }
可选写法(效果一致)
如果你习惯用fetch_array(),可以指定MYSQLI_NUM参数来强制返回索引数组:
$rows = ['data' => []]; while ($row = $result->fetch_array(MYSQLI_NUM)) { $rows['data'][] = $row; }
效果示例
假设你的结果集有两列(比如id和username),两行记录:
| id | username |
|---|---|
| 1 | Alice |
| 2 | Bob |
最终生成的$rows数组结构会是:
Array ( [data] => Array ( [0] => Array ( [0] => 1 [1] => Alice ) [1] => Array ( [0] => 2 [1] => Bob ) ) )
这样就完全符合你要的“每一行作为索引子数组存入$rows['data']”的需求啦~
内容的提问来源于stack exchange,提问作者tgraf2
相关产品推荐
相关产品推荐

