1、获取excel数据,根据title跟数据可字段匹配
if (!function_exists('getExcelDataByTitle')) {
function getExcelDataByTitle($title, $fileData)
{
$oneLine = array_shift($fileData);
$titleFlip = array_flip($title);
foreach ($oneLine as $key => $label) {
if (isset($titleFlip[$label])) {
$col = $titleFlip[$label];
$current_title[] = $col;
} else {
$current_title[] = 'empty';
}
}
$result = [];
foreach ($fileData as $key => $row) {
$isValid = false;
foreach ($row as $k => $v) {
$col = $current_title[$k];
$result[$key][$col] = null;
if (!is_null($v)) $isValid = true;
if ($col != 'empty' && isset($v)) $result[$key][$col] = trim($v);
}
if ($isValid === false) unset($result[$key]);
}
return $result;
}
}
2、获取导出数据,根据title跟数据可字段匹配
if (!function_exists('getExportDataByTitle')) {
function getExportDataByTitle($title, $fileData)
{
$titleFlip = array_flip(array_values(array_flip($title)));
$result = [];
$index = 1;
foreach ($fileData as $key => $row) {
foreach ($titleFlip as $col => $i) {
if (stripos($col, '.')) {
$allKey = explode('.', $col);
$res = $row;
foreach ($allKey as $k) {
$res = $res[$k] ?? null;
}
$result[$key][$i] = $res;
} else {
if (isset($row[$col])) {
$value = $row[$col];
/*if (is_array($value)) {
$value = $value['label'] ?? $value['name'] ?? (string)$value;
}*/
$result[$key][$i] = $value;
} else {
$result[$key][$i] = '';
}
if ($col == 'index') $result[$key][$i] = (string)$index;
}
}
$index++;
}
array_unshift($result, array_values($title));
return $result;
}
}