в нижнем регистре в array_combine

У меня есть простой анализатор, который анализирует CSV-файл и возвращает мне массив, проиндексированный по именам ячеек в строке заголовка, вот мой код:

$file = file(public_path() .'/screens/'. $file, FILE_SKIP_EMPTY_LINES);

$csv = array_map("str_getcsv", $file, array_fill(0, count($file), ';'));
$keys = array_shift($csv);
$response = (object)array();
foreach ($csv as $i => $row) {
// Combine headers with values
$csv[$i] = array_combine($keys, $row);
$wellName = $csv[$i]["Well"];
$response->{$wellName} = array_combine($keys, $row);
}
return $response;

Моя проблема в том, что в моих csvfiles иногда заголовки имеют верхний регистр в начале или в слове, но я не знаю, где я должен делать мой strtolower в моей функции синтаксического анализа, я хочу, чтобы только заголовки были в нижнем регистре ,

1

Решение

Похоже, что вы уже используете array_map, каждый раз, когда вы хотите преобразовать значения в структуре, вы должны заглянуть в функцию карты.

$keys = array_map('strtolower', array_shift($csv));
2

Другие решения

Как ключи в $keys, вы можете отобразить strtolower функция к $keys только однажды:

$keys = array_shift($csv);
$keys = array_map('strtolower', $keys);
2

По вопросам рекламы [email protected]