我有六个CSV文件,我想将它们转换为单独的数组,然后交叉这些数组以查看每个数组中相似的所有值。到目前为止我有这个:
$directory = "/csv/CSS_AUDIT/";
if (! is_dir($directory)) {
exit('Invalid directory path');
}
$files = array();
foreach (scandir($directory) as $file) {
if ('.' === $file) continue;
if ('..' === $file) continue;
$files[] = $file;
$row = 1;
if (($handle = fopen("/csv/CSS_AUDIT/$file", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
$row++;
for ($r=0; $r < $num; $r++) {
echo $data[$r];
if (!empty($data[$r]))
echo "'n";
}
}
fclose($handle);
}
}
现在它正在遍历文件并在一个大数组中给我所有内容,我只是有点卡住了。关于如何实现我想做的事情,有什么建议吗?
如果文件不是太大,您可以将它们加载到数组中,并在添加之前检查数组中不存在这样的值,或者在完成后运行array_unique()
。参考:
如果文件太大,则必须使用其他一些更复杂和耗时的方法(例如在插入新行之前每次读取输出(希望是排序的))。