PHP转换CSV文件为数组和相交


PHP convert CSV files into arrays and intersect

我有六个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()。参考:

如果文件太大,则必须使用其他一些更复杂和耗时的方法(例如在插入新行之前每次读取输出(希望是排序的))。