簡體   English   中英

在php循環中比較值時不支持的操作數類型

[英]Unsupported operand type while comparing values in the php loop

我在php中遍歷了mysql數據行,我想將一行中的值與下一行中的值進行比較。 到目前為止,我做了這樣的代碼:

if ($result->num_rows > 0) {
     // output data of each row
     while($row = $result->fetch_assoc()) {
        $current_row = $row;
        $next_row = $row+1;
        if ($current_row["begin_date"] > $next_row["end_date"])
        {
           (...)
        }
     }
} else {
     echo "0 results";
}

但是我收到一條錯誤消息,指出$ row + 1會產生致命錯誤:不支持的操作數類型。 我該如何解決?

例如,當我有這樣的行時:

     begin_dates | end_dates
row1:    value1  |  value2
row2:    value3  |  value4
row3:    value5  |  value6
row4:    value7  |  value8

我想將value2與value3,value4與value5以及value6與value7進行比較-如何在循環中進行比較? 另外-PHP是否可以處理諸如indexarrayoutofbounds異常之類的事情? 我想使此循環通用,並且以后不要擔心到達最后一個索引,例如,在這種情況下,因為value8是最后一個索引-我不想將其與空值(不存在現有的value9)進行比較。 謝謝!

$row+1不會使您進入下一行

if ($result->num_rows > 0) {

    $arr = array();

    while($row = $result->fetch_assoc()) {     
       $arr[] = $row;
    }

    for($i=0; $i < count($arr); $i++) {
        $current_row = $arr[$i];
        $next_row    = $arr[$i+1];

        if ($current_row["begin_date"] > $next_row["end_date"]) {
           (...)
        }
     }
} else {
     echo "0 results";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM