从MySQL查询结果生成PHP数组时如何将数据库ID作为数组键
实现方法
你只需要调整循环内的赋值逻辑,手动指定数组的键为ID字段值即可,修改后代码如下:
// 初始化空结果数组,避免历史数据干扰 $liveuserdata = []; $sql = mysqli_query($conn,"SELECT * FROM `live`"); while($row = mysqli_fetch_array($sql, MYSQLI_ASSOC)){ // 以当前行的ID字段值作为数组键,写入整行数据 $liveuserdata[$row['ID']] = $row; }
逻辑说明
- 原有写法直接用
$liveuserdata[]赋值,PHP会默认生成从0开始的自增数字索引 - 调整后先将单次查询到的行数据存入临时变量
$row,再以$row['ID']作为键写入结果数组,即可得到你期望的输出结构 - 注意:如果你的数据库表ID存在重复值,后查询到的同ID数据会覆盖之前的内容,这是PHP数组键的唯一性特性导致的,符合常规业务使用逻辑
小提示:你也可以用mysqli_fetch_assoc($sql)代替mysqli_fetch_array($sql, MYSQLI_ASSOC),写法更简洁,效果完全一致。
内容的提问来源于stack exchange,提问作者Glen Keybit
相关产品推荐
相关产品推荐

