symfony - 是否可以使用 League csv 逐列读取 csv 文件?
问题描述
我想知道是否可以使用 League csv 或其他方式在 symfony 中读取这样编写的 csv 文件。
water_level,2,456,345
wind_speed,25,456,56
food_level,10.4,123,23
animal_count,56,34,124
number_of_machines,150,345,54
machineId,1234567,1234568,1234567
第一列中的标题和下一列中的数据。
现在,当标题位于第一行时,我可以读取文件,我只想知道是否可以以其他方式读取它!
我尝试转置,但出现错误。如果数组真的被转置,我真的不知道是什么原因造成的。
$pathString = implode($newFilesPath);
$reader = (Reader::createFromPath($pathString))->setHeaderOffset(0);
$results = $this->transpose(iterator_to_array($reader->getRecords()));
foreach ($results as $row) {
$properties = (new AppProperty)
->setWaterLevel($row['water_level'])
->setWindSpeed($row['wind_speed'])
->setFoodLevel($row['food_level'])
->setAnimalCount($row['animal_count'])
->setNumberOfMachines($row['number_of_machines'])
->setMachineId($row['machineId'])
->setDate(new \DateTime());
$this->em->persist($properties);
}
$this->em->flush();
}
private function transpose ($array){
return array_map(null, $array);
}
错误:
传递给 App\Entity\Property::setWaterLevel() 的参数 1 必须是 int 或 null 类型,给定字符串。
看起来转置不起作用。
解决方案
推荐阅读
- c# - C# 中 8 个条件的模式匹配:File.Exists 返回 false,但文件确实存在
- r - 解释密度尺度 geom_density
- reactjs - React 路由和 Express 路由
- reactjs - React Child 组件不会更新道具
- c# - C#如何获取一个月中的“灰色”天日期时间
- javascript - Javascript 正则表达式 matchAll 函数不起作用
- javascript - 无法使用自定义角度指令禁用按钮
- python - Heroku 和 Postgres 的 Flask SQLAlchemy 错误 (psycopg2.errors.DatatypeMismatch)
- python-3.x - BeautifulSoup 中的 find_all() 返回空的 ResultSet
- javascript - 如何将图像保存到 sqlite 数据库中?