php从关联数组创建csv
我必须从下面的数组生成csvphp从关联数组创建csv,php,arrays,export-to-csv,Php,Arrays,Export To Csv,我必须从下面的数组生成csv Array ( [sku1] => Array ( [bin1] => 10 [bin2] => 5 [bin3] => 10 ) [sku2] => Array ( [bin2] => 10 [bin10] => 9 )
Array
(
[sku1] => Array
(
[bin1] => 10
[bin2] => 5
[bin3] => 10
)
[sku2] => Array
(
[bin2] => 10
[bin10] => 9
)
[sku3] => Array
(
[bin3] => 7
)
)
csv格式应如下所示:
sku1,bin1,10
sku1,bin2,10
sku2,bin2,10
sku2,bin10,9
sku3,bin3,7
如何存档 使用fputcsv函数尝试此示例并读取此链接
尝试: 尝试: //将标题设置为csv foramt中的自动下载文件
header("Content-Disposition: attachment; filename=\"demo.xls\"");
header("Content-Type: application/vnd.ms-excel;");
header("Pragma: no-cache");
header("Expires: 0");
$out = fopen("php://output", 'w');
//this is your data array to be converted in csv
$result=
array('sku1'=>array('bin1'=>10,'bin2'=>5,'bin3'=>10),'
sku2'=>array('bin2'=>10,'bin10'=>3),'sku3'=>array('bin3'=>7));
$final=array();
// now se are converting first array key in to node
foreach($result as $key=>$val){
// now se are converting second array key and value in to node
foreach ($val as $k=>$v){
// merging first array key and second array key values in to single array to
//make a csv
$final[]=array($key,$k,$v);
}
}
foreach ($final as $data)
{
//Now we are generating the csv from final array
fputcsv($out, $data,"\t");
}
fclose($out);
你试过什么吗?你有代码吗?如何实现这一点-通过编写代码。使用fputcsv函数获取结果。因此,你想让我们编写你的代码吗?向我们展示您到目前为止尝试了什么?看看您能否格式化代码并添加更多关于代码功能的文本?我已经编辑了代码并解释了代码的功能
$array= [
'sku1' => [
'bin1' => 10,
'bin2' => 5,
'bin3' => 10
]
,
'sku2' => [
'bin2' => 10,
'bin10' => 9,
],
'sku3' => [
'bin3' => 7
]
];
$fileContent=[];
foreach ($array as $key =>$value1){
foreach ($value1 as $key2 => $value2){
$fileContent[]=[$key, $key2, $value2];
}
}
$fp = fopen('file.csv', 'w');
foreach ($fileContent as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
header("Content-Disposition: attachment; filename=\"demo.xls\"");
header("Content-Type: application/vnd.ms-excel;");
header("Pragma: no-cache");
header("Expires: 0");
$out = fopen("php://output", 'w');
//this is your data array to be converted in csv
$result=
array('sku1'=>array('bin1'=>10,'bin2'=>5,'bin3'=>10),'
sku2'=>array('bin2'=>10,'bin10'=>3),'sku3'=>array('bin3'=>7));
$final=array();
// now se are converting first array key in to node
foreach($result as $key=>$val){
// now se are converting second array key and value in to node
foreach ($val as $k=>$v){
// merging first array key and second array key values in to single array to
//make a csv
$final[]=array($key,$k,$v);
}
}
foreach ($final as $data)
{
//Now we are generating the csv from final array
fputcsv($out, $data,"\t");
}
fclose($out);