You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP将MySQL数据转换为指定结构的JSON动态对象

enter image description here

实现方法

你需要在PHP中构造关联数组,再通过json_encode输出即可,具体实现逻辑如下:

  1. 先查询获取数据表中的所有记录,包含ID、start_time、end_time三个字段
  2. 循环每条记录,以记录ID为数组键,对应时间字段为子数组的值进行赋值
  3. 输出JSON时按需添加格式化参数即可得到你需要的结构

示例代码

// 数据库查询部分按你现有逻辑调整即可,这里以PDO查询为例
$pdo = new PDO('mysql:host=127.0.0.1;dbname=你的数据库名;charset=utf8mb4', '数据库账号', '数据库密码');
$query = $pdo->query("SELECT id, start_time, end_time FROM 你的数据表名");
$list = $query->fetchAll(PDO::FETCH_ASSOC);

// 构造目标数组
$result = [];
foreach ($list as $item) {
    // 强制将ID转为字符串作为键,避免后续转JSON被识别为索引数组
    $result[(string)$item['id']] = [
        'start_time' => $item['start_time'],
        'end_time' => $item['end_time']
    ];
}

// 输出JSON,JSON_PRETTY_PRINT用于格式化输出,和你示例的排版一致
echo json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);

注意事项

如果你的ID是连续的整数,不加处理的话json_encode可能会将数组识别为索引数组,输出[]包裹的JSON数组而非你需要的{}包裹的JSON对象,除了上面将ID转为字符串的方法外,也可以在json_encode时添加JSON_FORCE_OBJECT参数强制输出对象格式。

内容的提问来源于stack exchange,提问作者Ehsanul Karim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:48:04