我正在尝试比较数据库中的两个条目,因此当用户进行更改时,我可以获取两个数据库条目并比较它们以查看用户更改的内容,因此我会得到类似于以下内容的输出:
用户将
$fieldName
从 $originalValue
更改为 $newValue
我研究过这个并遇到了
array_diff
,但它没有给我我需要的输出格式。
在我继续编写一个执行此操作的函数并将其作为一个漂亮的
$mtextFormatDifferenceString
返回之前,任何人都可以指出我已经执行此操作的解决方案的方向吗?
我不想重新发明轮子..
由于您需要“从 $originalValue 到 $newValue”,我将继续选择两行,将它们放入关联数组中,然后遍历键,保存不相等的行。有点像:
$fields = array_keys($row1);
$changedFields = array();
foreach ($fields as $field) {
if ($row1[$field] != $row2[$field]) {
$changedFields[] = $field;
}
}
我知道你问的是预制轮子的存在,但我觉得解决方案非常简单。
?>
虽然你没有定义你需要什么格式,但众所周知的
diff
算法可能适合你。谷歌搜索PHP diff algorithm
,我相信你会找到一些建议。
您可以使用 array_diff_assoc 获取更改后的值 ($newValue),然后只需使用键 ($fieldName) 查找原始值 $originalValue 并以您想要的任何格式输出