我正在尝试创建此结构以将数据发送到
API
$metaDataList = [
[
"key" => "item_description0",
"value" => "DCALUXE",
]
];
我需要这个结构。
我正在尝试这样做:
$items_selected = [];
for($i=0; $i<count($precontractData->items);$i++){
$items_selected["item_description$i"] = $precontractData->items[$i]->name;
$items_selected["item_quantity$i"] = intval($precontractData->items[$i]->cuantity);
}
array_push($metaDataList, $items_selected);
但是我的结果不等于我需要的结构。我尝试使用合并数组,尝试使用 array_map,但我不知道如何使用此结构创建一个数组。键“key”应为
"item_description$i"
,值应为 $precontractData->items[$i]->name
谢谢你的自述,抱歉我的英语不好
您错误地构建了数组。没有名为
item_description_0
的键,只有 key
和 value
。所以你需要调整你的循环:
$metaDataList = [];
foreach ($precontractData->items as $i => $item) {
$metaDataList[] = [
'key' => "item_description{$i}",
'value' => $item->name,
];
$metaDataList[] = [
'key' => "item_quantity{$i}",
'value' => intval($item->cuantity),
];
}
最终
$metaDataList
将类似于
[
[
'key' => 'item_description0',
'value' => 'Name',
],
[
'key' => 'item_quantity0',
'value' => 100,
],
[
'key' => 'item_description1',
'value' => 'Name 1',
],
[
'key' => 'item_quantity1',
'value' => 101,
],
];