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

如何为WordPress wpdb查询返回的行对象添加自定义键值对?

问题:如何在WordPress wpdb查询结果的每行添加自定义键值对

当前使用WordPress的wpdb进行数据库查询后得到$result结果集,遍历代码如下:

foreach($result as $row) {
     echo $row;
 }

输出的行对象JSON结构为:

{
"NDB_No": "20129",
"Ingredient": "Wheat flours, bread, unenriched",
"PolyFat": "0.72",
"Chol": "0",
"Refuse_Pct": "0",
"Instructions": "Δεν Υπάρχουν Οδηγίες",
"Ingredients": "Δεν Υπάρχουν Υλικά",
"Image": "20129_Wheat flours.png"
}

需要在每个返回的行对象末尾添加somename":"somevalue这样的自定义键值对,具体实现方法如下:


解决方案

WordPress的wpdb查询返回的结果集,每行数据的类型取决于查询参数:默认是对象(OBJECT模式),也可指定为关联数组(ARRAY_A模式),对应两种添加方式:

1. 行数据为对象时(默认场景)

直接给对象添加属性即可,修改后的遍历代码:

foreach($result as $row) {
    // 添加自定义键值对
    $row->somename = 'somevalue';
    // 输出JSON格式的行数据(避免直接打印对象,确保编码后输出)
    echo json_encode($row);
}

2. 行数据为关联数组时

如果查询时使用了ARRAY_A参数(例如$wpdb->get_results($sql, ARRAY_A)),直接给数组添加键值:

// 使用引用&,让修改同步到原$result数组中
foreach($result as &$row) {
    $row['somename'] = 'somevalue';
    echo json_encode($row);
}
// 解除引用,防止后续变量被意外修改
unset($row);

注意事项

  • 原始代码中echo $row若能输出JSON,说明之前已做编码处理,需确保添加键值对后再执行json_encode,避免重复编码。
  • 若需批量修改整个结果集再统一使用,可先遍历完成修改,再单独处理输出逻辑。

内容的提问来源于stack exchange,提问作者Gacha SS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:10:28