代码之家  ›  专栏  ›  技术社区  ›  MG1

检查while循环中的值是否相同

  •  1
  • MG1  · 技术社区  · 14 年前

    如果$records[$row]值与上次循环的值相同,我想重复相同的操作。我怎样才能做到这一点?

    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
      $num = count($data);
      $records[] = $data;
    
      $stringData .= '<PayTo PTPayeeID="' . $records[$row][2];
    
      // if the value of $records[$row][2] is the same I want to repeat an action.
      echo "<div id=\"row\"><div id=\"num\">" .$row. "</div>";
      $row++;
    
      for ($c=0; $c < $num; $c++) {
         if ($c != 1) {
           echo "<div class=\"field\">" . $data[$c] . "</div>";
         }
      }
    }
    
    3 回复  |  直到 14 年前
        1
  •  6
  •   Bitsplitter    14 年前

    一般来说,要将一行与前一行进行比较,请将前一行的值存储在变量中。 请确保为变量分配一个不会在数据中作为实际值出现的值。

    $prevValue = NULL;
    while(condition) {
     if ($curValue == $prevValue) {
      .
      . do stuff
      .
     }
     $prevValue = $curValue;
    }
    
        2
  •  3
  •   webbiedave    14 年前

    $prevRow2 = '';
    

    然后您可以比较:

    if ($records[$row][2] == $prevRow2) {
        // it's the same as the last time!
    }
    

    使用后 $records[$row][2] $prevRow2 在继续while循环之前。

    $records[$row][2] $firstTime 布尔值进行检查。)

        3
  •  0
  •   thejh    14 年前
    if (count($records)>1&&$records[count($records)-1]===$records[count($records)-2]) {
      //do something
    }