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

PHP按Cat_name分组输出仅显示单个对象,如何调整代码获取多个对象

PHP按Cat_name分类数组对象的修复方案

问题原因

  • 循环变量命名冲突:原代码写的foreach($row as $row)会在遍历过程中直接覆盖原数组变量,导致数据丢失
  • 重复重置分类容器:每次循环都执行$output[$keys] = [],会清空对应分类下之前已经存入的对象,最终每个分类仅保留最后一次推入的单个对象

修正后代码

// 先初始化结果容器
$output = [];
// 遍历原数组,注意不要重名覆盖原数组变量
foreach($original_rows as $row){
    $key = $row['Cat_name'];
    // 仅当分类不存在时才初始化空数组,避免覆盖已有内容
    if(!isset($output[$key])){
        $output[$key] = [];
    }
    array_push($output[$key], $row);
}
echo json_encode($output);

代码说明

  • 先全局初始化$output作为最终输出的容器
  • 代码里的$original_rows需要替换成你自己实际的数据源数组名,避免和单条记录的$row重名冲突
  • 新增isset判断,只有对应分类还没创建的时候才初始化空数组,已有分类直接往里面追加对象即可

内容的提问来源于stack exchange,提问作者Dev 21

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:06:02