【发布时间】:2020-04-13 13:29:45
【问题描述】:
我有以下工作代码来比较 2 个 csv 文件 - base.csv 文件使用函数 row_compare 与 master.csv 文件进行比较。现在我正在回显 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
输出格式
因此,所有包含 Johan Consulting Fees、Shirley Salary、Juanic Salary 和 Nancy Skosan 的行都应变为黄色
【问题讨论】:
-
您能否根据以上来自 master.csv 和 base.csv 的示例值显示您的预期输出?