我正在使用https://csv.thephpleague.com/读取 csv 的代码是:
if (!ini_get("auto_detect_line_endings")) {
ini_set("auto_detect_line_endings", TRUE);
}
$csv = Reader::createFromPath($path, 'r');
$input_bom = $csv->getInputBOM();
if ($input_bom === Reader::BOM_UTF16_LE || $input_bom === Reader::BOM_UTF16_BE) {
$csv->addStreamFilter('convert.iconv.UTF-16/UTF-8');
}
$csv->skipEmptyRecords();
$csv->setHeaderOffset($header_row);
$csv_header = $csv->getHeader();
/**unit_number **/
$unit_number_key = array_search('unit_number', $request->row);
$unit_number_results = $csv->fetchColumn($unit_number_key);
$unit_number_lists = iterator_to_array($unit_number_results, false);
if($header_row > 0){
$unit_number_lists = array_slice($unit_number_lists,$header_row);
}
$unitNumbers = array();
$unit_numbers = array_filter(array_unique($unit_number_lists));
foreach($unit_numbers as $uk => $uv){
$r_trimmed_uv = trim($uv);
$str_len = strlen($r_trimmed_uv);
if(!isset($unitNumbers[$str_len])){
$unitNumbers[$str_len] = $r_trimmed_uv;
}
dd($unitNumbers);
结果dd
显示为:
在这里,我们可以确认有 10 个字符(6 个空格)和(4 个数字)。我该如何解决它,我不知道它是否以不同的格式编码,这就是问题所在,或者我是否缺少按照 CSV 添加一些行。但是,我无法从这里删除这个空间。
而且,这里是示例文件:https ://drive.google.com/file/d/1i3ry8AoGzfNG-K6AWpWvhzSQ8QkreOB0/view?usp=sharing