【发布时间】:2012-11-15 19:40:23
【问题描述】:
我是 php 编程的新手,但我已经被这段代码困住了一段时间。 我想逐行读取 .csv 文件,然后将其值保存在数组列表中。
$file = fopen('Sub-Companies.csv', 'r');
while (($line =
fgetcsv($file)) !== FALSE) {
print_r($line);
list($customer_id[],$company_name[],$department[],$employee[],$country[],$zipcode[],$address[],$city[],
$smth1[], $smth2[], $phone_no1[],$phone_no2[],$email[],$website[],
$customer_no[],$problem1[],$problem2[]) = explode(";",$line); }
fclose($file); var_dump($customer_id);
问题是,虽然文件被正确读取,但分解不起作用,数组似乎为空。
我正在考虑的一件事是一些数组有更多的“;”比其他人,所以这可能是一个问题,这就是为什么我有数组 $problem1 和 $problem2,以便存储这个数组的值。
任何帮助都会很棒!
【问题讨论】:
-
1.) 请发布您的 CSV 文件示例。 2.) 我从来没有见过这样的代码使用
list()超过10个参数!! -
例如我有这个条目:601C6E90-DC11-41B1-B121-30859C532046;;NULL;NULL;DE;19073;NULL;Wittenförden;NULL;NULL;0004004;839828298;email@ address.de;NULL;ibd21 你觉得我有这么多参数有问题吗?
-
如果它有帮助,我也试过这个代码:
$string1 = "his; is a; nw;house"; $testarray = explode(";",$string); print_r($testarray);有效,但是当我使用这个$testarray = explode(";",$line); print_r($testarray);时它没有。 -
这是一个阅读代码的问题 ;) 你用错了
fgetcsv()!试试这个脚本:pastebin.com/1P70pxc0 -
好吧,我按照你的建议做了,当我打印时它给了我 NULL。