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

如何将SQL查询的测试数据构造为层级数组或JSON结构

三级层级结构优雅实现方案

核心思路是利用关联数组键的唯一性天然保证testsuitecollectionId、testsuiteId的唯一,仅需单次遍历SQL结果集即可完成归集,时间复杂度为O(n)(n为SQL返回的行数),远优于多层嵌套循环的实现。
以下为PHP代码示例(适配你提到的$tsc数组场景):

// 1. 先基于已有$tsc数组预置顶层key,避免遗漏没有测试数据的testsuitecollectionId
$hierarchy = array_fill_keys($tsc, []);

// 2. 单次遍历SQL查询结果完成三级结构归集
foreach ($queryResult as $row) {
    $tscId = $row['testsuitecollectionId'];
    $tsId = $row['testsuiteId'];
    $tcId = $row['testcaseId'];
    
    // 对应testsuiteId不存在则初始化,键唯一性自动去重
    if (!isset($hierarchy[$tscId][$tsId])) {
        $hierarchy[$tscId][$tsId] = [];
    }
    
    // 写入testcase与状态的映射
    $hierarchy[$tscId][$tsId][$tcId] = $row['Status'];
}

如果需要过滤不在$tsc数组里的testsuitecollectionId,可以在遍历里加一层isset($hierarchy[$tscId])的判断即可。

存储格式选择建议
  • 优先选数组:如果你的后续操作是当前脚本直接导出Excel,数组不需要额外的编解码开销,访问、遍历、修改都更高效,也可以直接适配各类PHP导出Excel类库的入参要求。
  • 仅需跨场景传输/持久化时选JSON:如果你需要把这个结构存入数据库、缓存,或者跨脚本、跨语言传递,再选择JSON格式,序列化后体积更小、兼容性更好。

内容的提问来源于stack exchange,提问作者Mads Sander Høgstrup

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:06:05