php脚本,用于将csv文件读取为json,在项目之前带有静态头
这是我的CSV数据 舒勒奈 舒莱德 系统传输 交易日期 sttId 性别 mzimu 01-022-1 20-007440 18/05/2021 12 F mzimu 01-022-1 20-007441 18/05/2021 13 M mzimu 01-022-1 20-007442 19/05/2021 14 Mphp脚本,用于将csv文件读取为json,在项目之前带有静态头,php,json,csv,Php,Json,Csv,这是我的CSV数据 舒勒奈 舒莱德 系统传输 交易日期 sttId 性别 mzimu 01-022-1 20-007440 18/05/2021 12 F mzimu 01-022-1 20-007441 18/05/2021 13 M mzimu 01-022-1 20-007442 19/05/2021 14 M 根据您的评论,如果我理解正确,shulename将始终是mzimu,shuleid将始终是01-022-1 因此,从您编写的代码继续创建所需的格式是 if($handle=fop
根据您的评论,如果我理解正确,
shulename
将始终是mzimu
,shuleid
将始终是01-022-1
因此,从您编写的代码继续创建所需的格式是
if($handle=fopen('revenue.csv','r'))==false){
模具(“打开文件时出错”);
}
$headers=fgetcsv($handle,1024,',');
$complete=array();
而($row=fgetcsv($handle,1024,',')){
$complete[]=array_combine($headers,$row);
}
fclose($handle);
//我们静态地分配了shulename和shuleid
//因为你说过他们永远都是一样的
$requiredFormat=['shulename'=>'mzimu',
“shuleid”=>“01-022-1”];
foreach($项目完成){
##注意这里的情况。问题中的csv是ucfirst,要求的格式是小写
##php索引区分大小写
未结算($item['Shulename']);
未结算($item['Shuleid']);
$requiredFormat['items'][]=$item;
}
echo json_编码($requiredFormat);
您可以在此处看到它的工作演示:
我伪造了csv流,以展示如何将其与fgetcsv
$csv = "Shulename,Shuleid,systemTransId,transactionDate,sttId,gender
mzimu,01-022-1,20-007440,18/05/2021,12,F
mzimu,01-022-1,20-007441,18/05/2021,13,M
mzimu,01-022-1,20-007442,19/05/2021,14,M";
//$file = fopen("YOURFILE.csv","r");
$file = fopen('data://text/plain,' . $csv,'r');
$line = 0 ;
$keys = [];
while (($data = fgetcsv($file)) !== FALSE)
{
if ($line==0) {
// set up the array
foreach ($data as $d) $keys[]=strtolower($d);
$output = array(
$keys[0] => "",
$keys[1] => "",
"items" => array()
);
} else {
if ($line==1) {
$output[$keys[0]] = $data[0];
$output[$keys[1]] = $data[1];
}
$tmp = [];
for ($x=2; $x<count($keys); $x++) {
$tmp[$keys[$x]] = $data[$x];
}
$output['items'][]=$tmp;
}
$line++;
}
$output = json_encode($output, JSON_PRETTY_PRINT);
die("<pre>".print_r($output,1));
$csv=“Shulename,Shuleid,systemTransId,transactionDate,sttId,性别
mzimu,01-022-1,20-007440,18/05/2021,12,F
mzimu,01-022-1,20-007441,18/05/2021,13,M
mzimu,01-022-1,20-007442,19/05/2021,14,M”;
//$file=fopen(“YOURFILE.csv”、“r”);
$file=fopen('data://text/plain,“.$csv,'r');
$line=0;
$keys=[];
while(($data=fgetcsv($file))!==FALSE)
{
如果($line==0){
//设置阵列
foreach($d数据)$keys[]=strtolower($d);
$output=array(
$keys[0]=>“”,
$keys[1]=>“”,
“items”=>array()
);
}否则{
如果($line==1){
$output[$keys[0]]=$data[0];
$output[$keys[1]]=$data[1];
}
$tmp=[];
对于($x=2;$XD)您是否有多个shulename
或始终是mzimu
?您迄今为止尝试了什么?您是否能够将csv读入php?问题是什么?是的,shulename和shuleid将永远不会更改我能够读取csv,但安排不是我想要的静态标题(shuleid,shulename)他们加入了data@Kinglish我想要一个可以从csv文件生成json数据的脚本,但在这种格式下它可以工作,谢谢