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

PHP如何构建符合API要求的products多维数组(含foreach实现)

正确构建API要求的products二维数组方法

你的核心问题是错误地用字符串拼接数组元素,导致生成的数组结构完全不符合API要求。正确的做法是直接操作PHP数组,而非拼接字符串。

正确实现步骤:

  1. 初始化默认数组(和你之前的代码一致):
$defaultData = array(
    'products' => [],
);
  1. 遍历商品列表,逐个构建商品子数组并添加到products中:
foreach($results['items']['item'] as $item) {
    // 生成单个商品的关联数组
    $product = array(
        'name'          => $item['description'],
        'code'          => '',
        'description'   => '',
        'price'         => $item['amount'],
        'measuringUnit' => 'buc',
        'currency'      => $currency_code,
    );
    // 将商品数组追加到products数组末尾
    $defaultData['products'][] = $product;
    // 也可以用array_push替代上面一行:
    // array_push($defaultData['products'], $product);
}

为什么之前的代码错误?

你之前把$add_array当作字符串拼接,然后赋值给$defaultData['products'][0],这会让products数组的第一个元素变成一段字符串,而非API要求的子数组结构,自然会被API拒绝。

最终生成的正确结构:

运行上述代码后,$defaultData['products']会生成API要求的二维数组,示例结构如下:

Array
(
    [products] => Array
        (
            [0] => Array
                (
                    [name] => x
                    [code] => 
                    [description] => 
                    [price] => 1
                    [measuringUnit] => buc
                    [currency] => EUR
                )
            [1] => Array
                (
                    [name] => y
                    [code] => 
                    [description] => 
                    [price] => 2
                    [measuringUnit] => buc
                    [currency] => EUR
                )
        )
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 02:52:44