Сравнивая значение с предыдущей строкой в ​​цикле while? - PullRequest
6 голосов
/ 11 апреля 2009

Я новичок в PHP, поэтому простите меня за простой вопрос.

В инструкции While есть ли способ узнать, равно ли значение в строке значению в предыдущей строке?

Ответы [ 2 ]

20 голосов
/ 11 апреля 2009

Просто сохраните это:

$get = mysql_query("...");
$previous = '';
while ($row = mysql_fetch_assoc($get)) {
  $current = $row['...'];
  if ($current == $previous) {
    // do stuff
  }
  $previous = $current;
}
7 голосов
/ 09 декабря 2014
$get = mysql_query("...");
$previous = '';
while ($row = mysql_fetch_assoc($get)) {
  $current = $row['...'];
  if ($current == $previous) {
  // do stuff
}
$previous = $current;
}

Этот пример не будет работать правильно. Он всегда будет пропускать первую запись в массиве. Первый раз в $ previous будет пустым, поэтому $ current и $ previous не будут равны. $ current должен будет очистить первый проход, как и предыдущий. $ current должно быть сделано равным внутри цикла if.

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

  if ($current == $previous) {
     $current = $row['...'];
    // do stuff
   }
 $previous = $current;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...