如何解决与数据并非完全相同的CSV PHP数组问题的一对多关系
我正在使用laravel作为框架,但实际上这只是PHP /数据问题。
我有一个称为服务器的表,它将有一个serverid,每一行都是一个服务器。然后,我有一个事实表,其中每个“事实”都有一行。现在,这并不总是相同的,例如
Server A might have CPU,MEMORY,ENVIRONMENT,LOCATION
Server B might have CPU,OS TYPE,LOCATION
我的难题是我想将其导出到CSV,我可以获取标题行,但是我试图将每一行统一并对齐(显然..数据并非在每一行都整齐地匹配),我不希望有空记录。
所以(我用过的地方是空的):
SERVERID,CPU,LOCATION,OSTYPE
SERVERA,1,2048,PRODUCTION,DC1,<BLANK>
SERVERB,<BLANK>,DC2,WINDOWS
一个代码示例(我认为是array_merge区域,其中数组中的每个实体在键方面都不相同)
foreach ($serverarray as $servers) {
$servers = array_filter($servers,function($v) { return $v != "rawfilename"; });
$serverfact = $this->get_facts_by_serverid($servers['serverid']);
$serverresultfull[] = array_merge($servers,$serverfact);
}
$file = $this->create_csv($serverresultfull);
public function create_csv($data)
{
$userid = Auth::user()->id;
$file = uniqid($userid,true);
$filename = "$file.csv";
$fp = fopen($filename,'w');
foreach ($data as $value) {
foreach ($value as $k=>$v) {
$headerv[]= $k;
}
}
fputcsv($fp,array_unique($headerv));
foreach ($data as $key=>$fields) {
fputcsv($fp,$fields);
}
fclose($fp);
return $file;
}
任何帮助,我们都会感激不已,即使是正确方向的一点也真的会有所帮助...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。