我有一个脚本,读取所有CSV文件在一个给定的目录。阅读是好的,但输出不是我所寻求的。
文件的内容是
7,5133606393691467151,000000000000000000
5,-841871172646878578,00000000000000
8,-482903031559659252,000000000000
所需输出
Array (
[0] => Array
(
id: 7
number_1: 5133606393691467151
number_2: 000000000000000000
)
[1] => Array (
id: 5
number_1: -841871172646878578
number_2: 00000000000000
)
[2] => Array (
id: 8
number_1: -482903031559659252
number_2: 000000000000
)
)
这是目前为止我的代码
$files = glob("SQLs/*.csv");
foreach($files as $file) {
if (($handle = fopen($file, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 4096, ",")) !== FALSE) {
foreach ($data as $lineArr) {
list($id[],$number_1[],$number_2[]) = $lineArr;
}
}
fclose($handle);
} else {
echo "Could not open file: " . $file;
}
}
目前得到错误500,当我运行它通过浏览器。如果我运行它在一个控制台一样php example.php >> output.txt
再次得到什么。文件output.txt是空的。
1条答案
按热度按时间eni9jsuy1#
稍微简化一下这个想法,因为
fgetcsv()
返回一个数组,其中只包含.csv文件中该行的值,您只需将这些值放入一个assoc数组中,该数组的大小和形状由您选择。当然,这会把所有文件中的所有数据放入一个数组中。你可能会发现,如果有很多数据,这可能会破坏你的最大内存。但这是另一个问题。