дравствуйте! Помогите с написанием цикла для выполнения такой задачи: на вход поступает несколько файлов (минимум 2), затем каждый из них заносится в массив, потом ищутся различия в массивах (идет сравнение каждого с каждым), потом рассчитывается процент совпадений. То, что есть сейчас, позволяет находить процент при условии, что все уже задано в программе отдельно по каждой операции. нужно, чтобы все эти переборки и расчеты выполнялось автоматически с помощью цикла. И с его написанием возникают проблемы. Помогите, пожалуйста, пригодится любой совет и любое замечание. Код (PHP): <?php // Сюда впишите названия файлов (начало) $one_file_name = "one.txt"; // Название первого файла $two_file_name = "two.txt"; // Название второго файла // Сюда впишите названия файлов (конец) $one = file($one_file_name); // Открываем первый файл и заносим из него все строки в массив $two = file($two_file_name); // Открываем второй файл и заносим из него все строки в массив $result = array_intersect($one, $two); // поиск различий $result1 = array_intersect($two, $one ); print_r($result); print_r($result1); $q = count($one); //количество элементов 1-го массива $e = count($two); $w = count($result); //ко-во элементов массива с различиями $w1 = count($result1); $r = ($w/$q)*100; // расчет процента совпадений $r1 = ($w1/$e)*100; print_r($r."\n"); print_r($r1); ?> Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
Можно сравнение двух файлов оформить в функцию. И входящие файлы задавать массивом. Потом проходится по массиву и сравнивать все файлы. Конечно тут нужно учесть что некоторые файлы буду сравниваться по нескольку раз, чтобы этого избежать нужно продумать алгоритм. Вот псевдокод накидал: Код (PHP): <?php $in_files = ( 'one.txt', 'two.txt', 'three.txt'); if (count($in_files) < 2) exit("Укажите минимум 2 файла для сравнения!\n"); foreach($in_files as $filen1){ foreach($in_files as $filen2){ compare($filen1, $filen2); } } function compare( $file_n1, $file_n2 ){ // Сюда впишите названия файлов (начало) $one_file_name = $file_n1; // Название первого файла $two_file_name = $file_n2; // Название второго файла // Сюда впишите названия файлов (конец) $one = file($one_file_name); // Открываем первый файл и заносим из него все строки в массив $two = file($two_file_name); // Открываем второй файл и заносим из него все строки в массив $result = array_intersect($one, $two); // поиск различий $result1 = array_intersect($two, $one ); print_r($result); print_r($result1); $q = count($one); //количество элементов 1-го массива $e = count($two); $w = count($result); //ко-во элементов массива с различиями $w1 = count($result1); $r = ($w/$q)*100; // расчет процента совпадений $r1 = ($w1/$e)*100; print_r($r."\n"); print_r($r1); }