【发布时间】:2011-11-30 02:17:09
【问题描述】:
我有一个包含数据的 csv 文件 第 1 行是这样的标题
id fname lname email date code pid
然后每一行在每个字段名称下方都有数据
3232456454 mike strong mike@mike.com 11/8/11 0:00 AU 2540
当我使用文本编辑器看到这个 csv 时,我看到它如下。
3232456454,mike,strong,mike@mike.com,11/8/11 0:00,AU,2540
87876548788,bob,cool,bob@what.com,11/8/11 0:00,RY,2148
23498765,nike,tick,nike@google.com,11/8/11 0:00,TE,5240
现在我想使用 php 读取文件,并且我希望数据与文本文件的格式完全相同。我将按原样将这些数据用于其他目的。我不想用逗号分隔,所以我不能使用 fgetcsv。我尝试使用 php file() 打开它,但是当我循环它时,我看不到正确的数据。有人可以提出一些建议吗?
如果我这样做,它会在数组中打印,每个元素取一个值,我不想要这个..
$csv = array();
$lines = file('sample.csv', FILE_IGNORE_NEW_LINES);
foreach ($lines as $key => $value)
{
$csv[$key] = str_getcsv($value);
}
print_r($csv)
我尝试使用谷歌代码中的 parsecsv 库,但这并不是必需的,因为我想要逐行获取数据。
我需要忽略输出中的第一行(标题)。
如果我能得到这样的输出,这将解决我的问题
Array
(
[id,fname,lname,email,,data,code,pid] => 3232456454,mike,strong,mike@mike.com,11/8/11 0:00,AU,2540
)
Array
(
[id,fname,lname,email,,data,code,pid] => 87876548788,bob,cool,bob@what.com,11/8/11 0:00,RY,2148
)
问候
【问题讨论】:
-
“看不到正确的数据”是什么意思?你看到了什么做什么,你到底期待什么?
-
嗨,我认为它是这样的数组格式 Array ( [0] => 3232456454 [1] => mike [2] => strong [3] => mike@mike.com [4 ] => 11/8/11 0:00 [5] => 澳大利亚 [6] => 2540 87876548788 [8] => bob [9] => 酷 [10] => bob@what.com [11] = > 11/7/11 0:00 [12] => RY [13] => 2148 23498765
-
对不起,我不知道如何格式化上述数据..所以如果你看到,在第 6 个元素之后,它需要下一条记录的 id。我想要它,就像我在文本文件中看到的那样。
-
那么,你想要它作为一个数组还是仅仅作为一行文本?
-
文本行,与此处完全相同 3232456454,mike,strong,mike@mike.com,11/8/11 0:00,AU,2540 这样我就可以逐行获取我达到了第 50 条记录之类的东西,我会做一些其他的事情......我可以计算并处理一旦我逐行获取数据。另外,我怎样才能跳过第一行..?