У меня есть следующий рабочий код для сравнения 2 CSV-файлов - файл base.csv для сравнения с файлом master.csv с помощью функции row_compare. Сейчас я повторяю файл master.csv, а затем повторяю совпадения. Мне нужна помощь, чтобы отобразить только файл master.csv в формате таблицы и выделить строки, соответствующие элементам файлов base.csv.
function row_compare($a, $b)
{
if ($a === $b) {
return 0;
}
return (implode("",$a) < implode("",$b) ) ? -1 : 1;
}
$file1 = new SplFileObject("master.csv");
$file1->setFlags(SplFileObject::READ_CSV);
$file2 = new SplFileObject("../../base.csv");
$file2->setFlags(SplFileObject::READ_CSV);
foreach ($file1 as $row) {
$csv_1[] = $row;
}
foreach ($file2 as $row) {
$csv_2[] = $row;
}
$unique_to_csv1 = array_udiff($csv_1, $csv_2, 'row_compare');
$unique_to_csv2 = array_udiff($csv_2, $csv_1, 'row_compare');
$all_unique_rows = array_merge($unique_to_csv1,$unique_to_csv2);
foreach($all_unique_rows as $unique_row) {
foreach($unique_row as $element) {
echo $element . " ";
}
echo '<br />';
}
master.csv
02Jan2020,Marilyn Salary,-31570.29,162252.14,,
02Jan2020,Nancy Skosana,-30000,132252.14,,
02Jan2020,Johan Consulting Fees,-30000,102252.14,,
02Jan2020,Carol Consulting Fees,-30000,72252.14,,
02Jan2020,Juanic Salary,-24239.22,48012.92,,
02Jan2020,Shirley Salary,-14382.67,33630.25,,
06Jan2020,Carol Consulting Fees,-10000,72252.14,,
06Jan2020,Juanic Salary,-4239.22,48012.92,,
06Jan2020,Shirley Salary,-4382.67,33630.25,,
Base .csv
ADE Labeling
Johan Consulting Fees
Best Board
Nancy Skosana
Cabstrut
Juanic Salary
Cybertrek
Drizit
Shirley Salary
Выходной формат
![enter image description here](https://i.stack.imgur.com/4GEn5.png)
Таким образом, все строки, содержащие сборы за консультацию Йохана, зарплата Ширли, зарплата Хуани c а Нэнси Скосан должна смениться на желтый