php - 如何在php中获取json数组的值
问题描述
我在 {}
大括号中有一个 json 数组,它是从$response5
.
$json ='[
{
"Collectioncentre_Name": "Kattupakkam - Collection Centre 001",
"Session_ID": "20/04/2019/AM/CC001",
"Date": "2019-04-20T00:00:00",
"MilkSession": "AM",
"Farmer_ID": "VASAN/000000037",
"Row_ID": 332713,
"Milkman_Code": "310",
"Farmer_Name": "VASANTHA",
"Gender": "Female",
"Received_Quantity": 1.3
},
{
"Collectioncentre_Name": "Kattupakkam - Collection Centre 001",
"Session_ID": "20/04/2019/AM/CC001",
"Date": "2019-04-20T00:00:00",
"MilkSession": "AM",
"Farmer_ID": "CHIND/000000366",
"Row_ID": 332714,
"Milkman_Code": "449",
"Farmer_Name": "CHINDIRA E",
"Gender": "Female",
"Received_Quantity": 3
},
{
"Collectioncentre_Name": "Kattupakkam - Collection Centre 001",
"Session_ID": "20/04/2019/AM/CC001",
"Date": "2019-04-20T00:00:00",
"MilkSession": "AM",
"Farmer_ID": "PERUN/000000017",
"Row_ID": 332715,
"Milkman_Code": "492",
"Farmer_Name": "V.Perundevi",
"Gender": "Female",
"Received_Quantity": 3
}
]';
$data=json_decode($json,true);
$your_string="";
foreach($data as $key=>$v){
$your_string.=$data[$key]['Collectioncentre_Name'].",".$data[$key]
['Session_ID'].",".$data[$key]['Date'].",".$data[$key]
['MilkSession'].",".$data[$key]['Farmer_ID'].",".$data[$key]
['Row_ID'].",".$data[$key]['Milkman_Code'].",".$data[$key]
['Farmer_Name'].",".$data[$key]['Gender'].",".$data[$key]
['Received_Quantity']."\r\n";
}
$csvdata= trim($your_string, ",");
//$csvdata = $your_string;
echo $csvdata."\r\n";
实际上这些 json 数组是 $response5 的输出。而且,如果我将代码$json ='[$response5;]
而不是添加整个数组,则不会得到添加数组值时得到的实际结果。我错过了什么还是需要添加更多代码?
解决方案
将各种评论放在一起,当尝试将整个 JSON 与原始数据放在一起时,而不是......
$json ='[$response5;]
要使其成为您需要使用的有效 JSON 数组...
$json ="[$response5]";
然后输出每行数据加上标题(使用implode
而不是冗长地将每个字段加在一起),您可以使用...
$data=json_decode($json,true);
$your_string=implode(",",array_keys($data[0])).PHP_EOL;
foreach($data as $key=>$v){
$your_string.=implode(",",$v).PHP_EOL;
}
echo $your_string."\r\n";
推荐阅读
- python - 在 testing.postgresql 中,在 Docker 中找不到 initdb 命令
- visual-studio - 如何自定义 Visual Studio 解决方案资源管理器右键菜单选项?
- c# - 如何更新 Windows Workflow Foundation 控制台应用程序?
- java - 添加其他项目时无法从另一个线程更新 JProgressBar 的值
- jmeter - JMeter GET 请求返回 200 OK 而不是 302(重定向)
- javascript - Firebase html 表单
- elasticsearch - 查询多个索引但限制来自单个索引的结果 - Elasticsearch 6.x
- python - 为什么只有键 len 的字典为零?
- laravel - 如何获取用户访问的页面(实时)
- excel - 无法从 VBScript 运行 Excel 宏