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

循环mysqli查询结果时,如何将关联元素合并至每行数据中

实现方法

你可以通过数组合并的方式,将查询结果行$row与计算出的额外数据$formula合并为单个数组,直接存入$containers即可得到目标结构。

修改后的代码:

while ($row = $table->fetch_array()) {
    $formula = [
        'tkoSum' => $this->getTkoSum($row['id']),
        'chko' => $this->getChko($row['id'])
    ];
    // 合并$row和$formula为平级数组,添加到容器中
    $containers[] = array_merge($row, $formula);
}

另一种更直观的写法:

如果不想额外创建$formula变量,也可以直接把计算结果追加到原行数据里:

while ($row = $table->fetch_array()) {
    $row['tkoSum'] = $this->getTkoSum($row['id']);
    $row['chko'] = $this->getChko($row['id']);
    $containers[] = $row;
}

修改后$containers的结构:

[
    0 => [
        'id' => 1,
        'category' => 'МКД',
        'tkoSum' => '12',
        'chko' => '15'
    ],
    1 => [
        'id' => 2,
        'category' => 'Офис',
        'tkoSum' => '62',
        'chko' => '45'
    ]
];

原理说明:array_merge()会将两个数组的键值对合并为一个数组,由于$row和$formula的键名无重复,所有字段会平级保留;直接修改$row的方式则更简洁,直接给原数组添加新键值对,最终存入容器的就是包含所有字段的单行数据。

内容的提问来源于stack exchange,提问作者Глеб Цибизов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 09:12:46