php - 在数组 PHP 中添加键
问题描述
我正在学习数组,我想知道如何为这种数组添加密钥?
{
"items":[
{
"count":"1",
"id":123,
"description":"Bag",
"price":11
},
{
"count":1,
"id":1234,
"description":"10% Discount",
"price":-1.1
}
],
"total":9.9,
"discount_total":9.9
}
因为我需要将数组转换为基于数组内的 id 的键。
{
"items":{
"123":{
"count":"1",
"cart_id":123,
"description":"Bag",
"price":11
},
"1234":{
"count":1,
"cart_id":1234,
"description":"10% Discount",
"price":-1.1
}
},
"total":9.9,
"discount_total":9.9
}
这是我的代码
header('Content-Type: application/json');
$cart_array = json_decode('{
"items":[
{
"count":"1",
"cart_id":123,
"plu":"TP16",
"description":"Bag"
},
{
"count":1,
"cart_id":1234,
"plu":"DISCT10",
"description":"10% Discount"
}
],
"total":9.9,
"discount_total":9.9
}');
foreach ($cart_array->items as $item)
{
$construct["cart_id"] = $item->cart_id;
}
我想问如何将id放入数组中?我不能使用$cart_array['id'] = $value
,它返回错误。
未捕获的错误:不能将 stdClass 类型的对象用作数组
我真的可以在这里使用一些解释
解决方案
以下代码可以帮助您。
<?php
$json = '{
"items":[
{
"count":"1",
"cart_id":123,
"plu":"TP16",
"description":"Small Four Seasons"
},
{
"count":1,
"cart_id":1234,
"plu":"DISCT10",
"description":"10% Discount"
}
],
"total":9.9,
"discount_total":9.9
}';
$data = json_decode($json,TRUE); //json decode
foreach ($data['items'] as $key => $value)
{
$data['items'][$value['cart_id']] = $value;
unset($data['items'][$key]);
}
echo "<pre>";print_r($data);die;
?>
推荐阅读
- oracle - Oracle 的动态 SQL 中的 Parallel Hint 是否并行运行?
- python - PHYTHON HTTP 请求数据挖掘大学日历
- optimization - 具有快速最小、删除、插入、搜索大型计算作业的数据结构
- python - 关闭 Binance 保证金订单是否必须使用 sideEffectType="AUTO_REPAY"?
- c# - Azure 认知服务 - 文本转语音 - SpeakTextAsync 不返回
- crystal-reports - Crystal Report 导出到 Excel - 页眉宽度不一致
- python - 在循环中使用子进程调用 Python 命令
- autossh - autossh 在直接从 shell 启动时工作,但不在服务中
- vb.net - 为什么在 for 循环中更改文本时 printdocument 会打印相同的页面?
- jena - 使用 Apache Jena(在 Java 中)读取 Turtle 文件时出现问题