在while循环中将一个值与前一行进行比较?

7

我是PHP的新手,所以请原谅我问一个基础问题。

在一个While语句中,有没有办法知道一行中的值是否等于前一行中的值?

2个回答

20

只需将它存储:

$get = mysql_query("...");
$previous = '';
while ($row = mysql_fetch_assoc($get)) {
  $current = $row['...'];
  if ($current == $previous) {
    // do stuff
  }
  $previous = $current;
}

9
$get = mysql_query("...");
$previous = '';
while ($row = mysql_fetch_assoc($get)) {
  $current = $row['...'];
  if ($current == $previous) {
  // do stuff
}
$previous = $current;
}

这个例子无法正常工作。它总是会跳过数组中的第一条记录。 第一次通过时,$previous将为空,因此$current和$previous不相等。 在第一次循环中,$current必须为空,就像$previous一样。 在if循环内部,$current必须被赋值。

$get = mysql_query("...");
$previous = '';
$current = '';
while ($row = mysql_fetch_assoc($get)) {

  if ($current == $previous) {
     $current = $row['...'];
    // do stuff
   }
 $previous = $current;
}

好的,我也想知道为什么它一直跳过第一行。 - prokaryote

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接