首页 > 解决方案 > 在 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,我希望只有标题是小写的.

标签: phpcsvlowercase

解决方案


看起来您已经在使用 array_map,任何时候您想要转换结构中的值,您都应该查看 map 函数。

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

推荐阅读