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

PHP数组修改:如何实现card字段的多元素嵌套结构?

解决思路与修正代码

原代码问题分析

  • 循环中每次重新赋值$data,导致card始终只保留最后一次循环的单个对象,而非数组结构
  • 最终将$data和$data2合并为数组编码,生成了不符合预期的双层数组输出

修正方案

先初始化包含add_order基础结构的数组,将card字段预设为空数组,再通过循环向card数组中添加重复结构的元素,最后直接编码目标结构即可:

// 初始化基础结构,将card设为空数组
$data = [
    "add_order" => [
        "session_id" => "",
        "company_code" => "",
        "session" => "",
        "card" => []
    ]
];

// 循环向card数组中添加元素(示例循环3次,对应你期望的3个card项)
for ($i = 0; $i < 3; $i++) {
    $data["add_order"]["card"][] = [
        "_key_shipping" => "",
        "_key_customer" => ["customercode" => ""],
    ];
}

// 编码成目标JSON结构(外层是数组,包含一个add_order对象)
$json_send = json_encode([$data]);

file_put_contents('data.json', $json_send);

关键说明

  • 先搭建好add_order的固定结构,把card初始化为空数组,避免循环中重复覆盖整个结构
  • 使用$data["add_order"]["card"][]的语法,每次循环自动向数组尾部追加新的card对象
  • 最后将$data包裹到一个数组中再编码,完全匹配你期望的外层数组结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:10:31