为了账号安全,请及时绑定邮箱和手机立即绑定

PHP在数组内组合数组

PHP在数组内组合数组

PHP
梵蒂冈之花 2022-10-14 15:35:07
我正在编写一个 API 并将数据发送到应用程序,我需要一些以某种方式格式化的数组,我似乎无法正确处理。该消息存在于两个数组中:Order 和 Items。Order 是单个数组,Items 似乎是数组中的一个数组,当订购多个项目时会出错。所需格式:    {  "order": {    "email": "string",    "phone": "string",    "company": "string",    "firstName": "string",    ...  },  "items": [    {      "description": "string",      "orderLineId": 0,      "priceType": "string",      "productCode": "string",      "productDescription": "string",      "quantity": 0,      "unitPrice": 0    }    {      "description": "string",      "orderLineId": 0,      "priceType": "string",      "productCode": "string",      "productDescription": "string",      "quantity": 0,      "unitPrice": 0    }    ...  ]}我得到的输出:{  "order": {    "email": "string",    "phone": "string",    "company": "string",    "firstName": "string",    ...  },  "items": [    {      "description": "string",      "orderLineId": 0,      "priceType": "string",      "productCode": "string",      "productDescription": "string",      "quantity": 0,      "unitPrice": 0    }],“0”: {      "items": [        {          "description": "string",          "orderLineId": 0,          "priceType": "string",          "productCode": "string",          "productDescription": "string",          "quantity": 0,          "unitPrice": 0        }      ]    }...}我尝试了 array_merge、array_push 等不同的方法,但不知何故,我无法按照需要的方式获取项目。对此有何建议?
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

对于一个简单的循环,您的解决方案看起来有点混乱和过于复杂。看起来您是在重新声明 items 值,而不是添加到 items 数组。我认为这应该更接近你所追求的:


$order_details = [

    "email" => $order->get_billing_email(),

    "phone" => $order->get_billing_phone(),

    "company" => $order->get_billing_company(),

    "firstName" => $order->get_billing_first_name(),

];


$all_items = [];

foreach( $order->get_items() as $item_key => $item ){

    $this_product = $item->get_product();

    $all_items[] = [

        "description" => $item->get_name(),

        "orderLineId"=>0,

        "priceType"=>"string",

        "productCode"=>$this_product->get_sku(),

        "productDescription" =>"string",

        "quantity" => $item->get_quantity(),

        "unitPrice"=> $this_product->get_price()

    ];

}


$message = [

    "order" => $order_details,

    "items" => $all_items,

];


查看完整回答
反对 回复 2022-10-14
  • 1 回答
  • 0 关注
  • 60 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信