检查两个数据库条目是否不同

问题描述 投票:0回答:3

我正在尝试比较数据库中的两个条目,因此当用户进行更改时,我可以获取两个数据库条目并比较它们以查看用户更改的内容,因此我会得到类似于以下内容的输出:

用户将

$fieldName
$originalValue
更改为
$newValue

我研究过这个并遇到了

array_diff
,但它没有给我我需要的输出格式。

在我继续编写一个执行此操作的函数并将其作为一个漂亮的

$mtextFormatDifferenceString
返回之前,任何人都可以指出我已经执行此操作的解决方案的方向吗?

我不想重新发明轮子..

php arrays compare
3个回答
1
投票

由于您需要“从 $originalValue 到 $newValue”,我将继续选择两行,将它们放入关联数组中,然后遍历键,保存不相等的行。有点像:

$fields = array_keys($row1);
$changedFields = array();

foreach ($fields as $field) {
    if ($row1[$field] != $row2[$field]) {
        $changedFields[] = $field;
    }
}

我知道你问的是预制轮子的存在,但我觉得解决方案非常简单。

?>


0
投票

虽然你没有定义你需要什么格式,但众所周知的

diff
算法可能适合你。谷歌搜索
PHP diff algorithm
,我相信你会找到一些建议。


0
投票

您可以使用 array_diff_assoc 获取更改后的值 ($newValue),然后只需使用键 ($fieldName) 查找原始值 $originalValue 并以您想要的任何格式输出

© www.soinside.com 2019 - 2024. All rights reserved.