Php 突出显示2个阵列/数据库行之间的差异
我试图创建一个脚本,当数据库中的行和列发生更改时,该脚本将高亮显示。我已经确定,可能是由于缺乏知识,使用array_diff将是实现这一点的一个好方法 我有这个工作的大部分,除了我得到的最后一行错误 以下代码创建了一个数组,其中包含当前表行与下一行之间的差异:Php 突出显示2个阵列/数据库行之间的差异,php,mysql,arrays,Php,Mysql,Arrays,我试图创建一个脚本,当数据库中的行和列发生更改时,该脚本将高亮显示。我已经确定,可能是由于缺乏知识,使用array_diff将是实现这一点的一个好方法 我有这个工作的大部分,除了我得到的最后一行错误 以下代码创建了一个数组,其中包含当前表行与下一行之间的差异: function fetchDiffs () { $sql = $this->main_sql." order by lh.date_created desc"; $stm = $this-&
function fetchDiffs () {
$sql = $this->main_sql."
order by lh.date_created desc";
$stm = $this->db->prepare($sql);
$stm->bindParam(':id_lead', $this->id_lead);
$stm->execute();
$res = $stm->fetchAll();
if ($res) {
array_walk_recursive($res, 'sanitize');
$diffs = array();
foreach ($res as $k => $v) {
if (array_key_exists($k+1, $res)) {
$diffs[$v['id']] = array_diff($v, $res[$k+1]);
}
}
$this->diffs = $diffs;
}
}
这样做的目的是创建一个字段数组,与下一行相比,这些字段的值发生了更改,并使用行id作为主数组键
以下是我根据上述代码在下一行中的值不同时用于突出显示邮政编码行的代码:
if (array_key_exists('postcode', $this->diffs[$this->row['id']]))
echo ' class="warning"';
我应该提到这是课程的一部分,这就是为什么你会看到$this->
现在,此代码在最后一行产生以下错误:
注意:未定义的偏移量
我假设这是因为它没有行来比较,它是最后一个。然而,我本以为以下代码会阻止这种情况:
if (array_key_exists($k+1, $res)) {
但事实并非如此。我该如何解决这个问题?我在这里不知所措,可能是因为睡眠不足
任何帮助都将不胜感激。这意味着一个数组比另一个小,或者一个数组的索引从0开始,另一个1或其他数字,这只是一个示例。对每个数组进行var_转储,并将它们添加到您的帖子中,以便我们可以深入研究您的问题。它们是完全相同的数组。我只是通过将第二个array_diff参数中的数组偏移1个元素来进行比较。