需要提取大量信息,即
file1:
10948|Book|Type1
file2:
SHA512||0||10948
file3:
0|10948|SHA512|c3884fbd7fc122b5273262b7a0398e63
我想把它变成类似的东西
c3884fbd7fc122b5273262b7a0398e63|SHA512|Type1|Book
我无法访问实际的数据库,有什么办法可以做到这一点?基本上是在寻找一个$id = $file1[0]; if($file3[1] == $id)
或其他东西,除非有更有效的方法。
每个 CSV 文件的行数从 100k 到 300k 不等。我不在乎是否需要一段时间,我可以让它在EC2上运行一段时间。
$data = array();
$fh = fopen('file1') or die("Unable to open file1");
while(list($id, $val1, $val2) = fgetcsv($fh, 0, '|')) {
$data[$id]['val1'] = $val1;
$data[$id]['val2'] = $val2;
}
fclose($fh);
$fh = fopen('file2') or die ("Unable to open file2");
while(list($method, null, null, null, $id) = fgetcsv($fh, 0, '|')) {
$data[$id]['method'] = $method;
}
fclose($fh);
$fh = fopen('file3') or die("Unable to open file3");
while(list(null, $id, null, $hash) = fgetcsv($fh, 0, '|')) {
$data[$id]['hash'] = $hash;
}
fclose($fh);
乏味,但你应该得到一个包含你想要的数据的数组。将其输出为另一个 csv 留给读者作为练习(提示:参见fputcsv() http://php.net/fputcsv).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)