PHP如何构建符合API要求的products多维数组(含foreach实现)
正确构建API要求的products二维数组方法
你的核心问题是错误地用字符串拼接数组元素,导致生成的数组结构完全不符合API要求。正确的做法是直接操作PHP数组,而非拼接字符串。
正确实现步骤:
- 初始化默认数组(和你之前的代码一致):
$defaultData = array( 'products' => [], );
- 遍历商品列表,逐个构建商品子数组并添加到
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
相关产品推荐
相关产品推荐

