使用php laravel代码:如果数组重复,则将单元格(导出为excel)留空
我正在使用php laravel。 我试图导出数据到excel .csv
文件与独特的数据或离开单元格而不是复制数据。 我应该用什么filter来做到这一点? 要清楚我会展示一些插图
这是一个使用php导出数组的数据的Excel视图的例子:
+--------+------------+-----------+ | Group | First Name | Last Name | +--------+------------+-----------+ | Group1 | John | Doe | +--------+------------+-----------+ | Group1 | Jane | Doe | +--------+------------+-----------+ | Group2 | John | Smith | +--------+------------+-----------+ | Group2 | Jane | Smith | +--------+------------+-----------+
这是我需要的Excel视图的一个例子。 你可以看到复制组是隐藏的:
+--------+------------+-----------+ | Group | First Name | Last Name | +--------+------------+-----------+ | Group1 | John | Doe | +--------+------------+-----------+ | | Jane | Doe | +--------+------------+-----------+ | Group2 | John | Smith | +--------+------------+-----------+ | | Jane | Smith | +--------+------------+-----------+
这是我一直在使用的代码:
public function getDashboardBookingsReport2($account_alias, $group_alias){ header (...) $file = fopen('php://output', 'w'); fputcsv($file, array('Group Name', 'First Name', 'Last Name')); $table = (...) $rowed[] = array( $egroup->name, // Group $user->first_name, // First Name $user->last_name, // Last Name ); } } } (...) $data = $rowed; uasort($data, function($a, $b) { return strcmp($a[0], $b[0]); }); foreach ($data as $row) { fputcsv($file, $row); } exit(); return Redirect::to( $group_alias.'/app/dash' ); }
在foreach ($data as $row)
和uasort($data, function($a, $b)
之后添加此代码:
for($i = count($data) - 1; $i > 0; $i--) { if($data[$i][0] === $data[$i - 1][0]) { $data[$i][0] = ""; } }