如何通过PHP从数据库生成指定格式多维数组并完成JSON编码?
修正PHP数组格式以生成目标JSON响应
嘿,我看你现在的代码生成的数组结构和预期不符,这就帮你修正过来!
问题分析
你当前的循环逻辑有问题:每次迭代都往$users里分别添加两个独立的数组元素,一个存id,一个存last_active,最终生成的数组会是类似这样的结构:
[ ['id' => 1], ['last_active' => 1522921015], ['id' => 2], ['last_active' => 1522921019], ... ]
这和你想要的「每个用户对应一个包含id和last_active的子数组」的格式完全不一样。
修正后的代码
只需要修改循环内的逻辑,把当前用户的两个字段值打包成一个子数组,再添加到$users中即可:
$users = array(); $stmt = $mysqli->query('SELECT id, last_active FROM users WHERE status = 1'); while ($row = $stmt->fetch_assoc()) { // 将当前用户的id和last_active组合成一个子数组,再加入到主数组 $users[] = array($row['id'], $row['last_active']); } echo json_encode($users);
效果验证
修正后生成的$users数组就完全符合你的预期:
$users = array ( 0 => array(1, 1522921015), 1 => array(2, 1522921019), 2 => array(3, 1522921102), 3 => array(4, 1522921195), ... );
对应的JSON响应也会是标准的二维数组格式:
[[1,1522921015],[2,1522921019],[3,1522921102],...]
内容的提问来源于stack exchange,提问作者medk
相关产品推荐
相关产品推荐

