PHP конвертирует CSV-файлы в массивы и пересекается

У меня есть шесть 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);
}

}

Прямо сейчас он просматривает файлы и дает мне все в одном большом массиве, и я просто немного застрял. Любой совет, как добиться того, что я пытаюсь сделать?

0

Решение

Если файлы не слишком большие, вы можете загрузить их в массив и либо проверить, что такого значения нет в массиве, прежде чем добавлять в него, либо запустить array_unique() когда вы закончите. Увидеть этот для справки.

Если файлы слишком большие, вам придется использовать некоторые более сложные и трудоемкие методы (например, чтение (надеюсь отсортированного) вывода каждый раз перед вставкой новой строки).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]