У меня есть страница, где пользователь может выбрать диапазон дат и около 40 флажков (по умолчанию установлено).Каждый флажок представляет данные, которые я собираю и позволяю им экспортировать.Я хочу, чтобы отмеченные флажки были экспортированы в мой файл Excel.
Все графики, которые я хочу экспортировать, передаются через эту переменную в $ _POST:
array (size=3)
'from' => string '2019-01-24' (length=10)
'to' => string '2019-02-24' (length=10)
'graphs' =>
array (size=5)
'matches-graphs' =>
array (size=3)
0 => string 'amount_contact_per_day_org_vol' (length=30)
1 => string 'amount_total_matches' (length=20)
2 => string 'amount_clicks_phone' (length=19)
'volunteers-graphs' =>
array (size=3)
0 => string 'amount_new_volunteers' (length=21)
1 => string 'amount_volunteers' (length=17)
2 => string 'amount_findable_volunteers' (length=26)
'vacancies-graphs' =>
array (size=6)
0 => string 'amount_new_vacancies' (length=20)
1 => string 'amount_active_vacancies' (length=23)
2 => string 'amount_expired_vacancies' (length=24)
3 => string 'amount_archived_vacancies' (length=25)
4 => string 'amount_active_vacancies_per_interest' (length=36)
5 => string 'vacancies_list_org' (length=18)
'traffic-graphs' =>
array (size=5)
0 => string 'amount_views_per_vol_profile' (length=28)
1 => string 'amount_views_per_vacancy' (length=24)
2 => string 'amount_views_per_org_profile' (length=28)
3 => string 'amount_logins_volunteers' (length=24)
4 => string 'amount_logins_orgs' (length=18)
'filters-graphs' =>
array (size=3)
0 => string 'filters_used_search_vol' (length=23)
1 => string 'filters_used_search_org' (length=23)
2 => string 'filters_used_search_vac' (length=23)
Затем я передаю это $массив графиков для функции, в которую я хочу экспортировать графики, указанные в Excel.Для этого я использую библиотеку phpoffice / phpspreadsheet.
Я хочу пройти через этот массив и для каждого элемента в нем я хочу записать в файл Excel.
Я думал со следующим кодом, но должен быть лучший способ?
if (!empty($graphs)) {
if (!empty($graphs['matches-graphs'])) {
foreach ($graphs['matches-graphs'] as $graph) {
if ($graph == 'amount_contact_per_day_org_vol') {
//Export data
}
if ($graph == 'amount_total_matches') {
//Export data
}
if ($graph == 'amount_clicks_phone') {
//Export data
}
}
}
if (!empty($graphs['volunteers-graphs'])) {
foreach ($graphs['volunteers-graphs'] as $graph) {
if ($graph == 'amount_new_volunteers') {
//Export data
}
if ($graph == 'amount_volunteers') {
//Export data
}
if ($graph == 'amount_findable_volunteers') {
//Export data
}
}
}
//etc for all categories
}