php - CSV 列值作为 PHP 中的变量
问题描述
我有简单的 csv 文件:
编号 | 恩
1 | 2342342345234
2 | 3453453454353
我想通过 foreach 循环中的变量访问这些数据: $id = 1, $ean = 2342342345234
那可能吗?
<?php
$row = 1;
if (($handle = fopen("upload/products.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 10000, ",")) !== FALSE) {
$num = count($data);
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
?>
解决方案
您的分隔符是管道,而不是逗号,因此请更改fgetcsv
. 然后,如果您在当前迭代中使用这些值,则可以静态分配这些值,或者使用数组供以后存储。
$row = 1;
if (($handle = fopen("upload/products.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 10000, "|")) !== FALSE) {
$id = $data[0];
$ean = $data[1];
...
或数组:
$row = 1;
if (($handle = fopen("upload/products.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 10000, "|")) !== FALSE) {
$ids[] = $data[0];
$eans[] = $data[1];
然后使用foreach
withkey
访问适当的配对。
foreach($ids as $key => $id) {
echo $id . ' ' . $eans[$key];
}
推荐阅读
- python - 是否可以为每个模型自动创建视图集和序列化器?
- snmp - PySNMP 陷阱 OID 字符串值正在转换为十六进制
- python - 来自 scipy.fft 的幅度
- dynamics-crm - 当对象类型未知时,我可以使用 FetchXML 通过 guid 检索实体吗?
- angular - 防止 CSS 样式在 Angular 应用程序之外应用
- react-hooks - 使用去抖动的 onChange 处理程序设置输入值
- javascript - 如何在 OpenLayers 中的两个遥远多边形之间创建飞行动画
- audio - 为什么我的音高对象听起来与 PRAAT 中的原始音频文件不同?
- amazon-web-services - Terraform:放置扩展策略时出错:AccessDeniedException:帐户未授权
- azure-cosmosdb - Azure Cosmos api 客户端选择 Azure.Cosmos 还是 Azure.DocumentDB.Core?