Я читаю сотни CSV для импорта в БД.
Некоторые имена столбцов содержат одинаковые данные, но имеют разные имена во всех файлах.
Например, в одном файле будет указано «Телефон», а в другом - «EveningPhone» ... оба содержат одни и те же данные, разные имена.
Я пытаюсь переименовать все в EveningPhone, потому что я сделал большую часть кода, когда понял, что в разных файлах были разные имена заголовков. Слишком ленив, чтобы заменить все, я думаю ..
Я создаю ассоциативный массив, чтобы сопоставить данные и затем передать их в БД.
Проблема в том, что я не могу получить ключи для переименования в одном соглашении. Вот функция, где это происходит:
public function readCSV($file) {
/**
* @todo: LOAD THE FILE INTO A MULTIDIMENSIONAL ASSOCIATIVE ARRAY TO DETERMINE THE FILEDS
*/
// Read the first line to get the headers
$headers = fgetcsv($file);
if (!array_key_exists('EveningPhone', $headers)) {
if (array_key_exists('Phone', $headers)) {
$headers['EveningPhone'] = $headers['Phone'];
unset($headers['Phone']);
} else {
die("other");
}
}
format::neat_r($headers); // basically print_r but adds a new line to read it easier...
die();
Массив возвращается до и после как это:
LeadID
AddDate
Фамилия
Имя
Адрес
город
государственный
Почтовый Индекс
LeadLocator
Телефон
Эл. адрес
секс
Комментарии
В конце концов, я все еще получаю не определенные ошибки EveningPhone из файла, который использует телефон в качестве номера телефона ..
У кого-нибудь есть идеи?