亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在循環中中斷索引數組并在php中使用

如何在循環中中斷索引數組并在php中使用

PHP
達令說 2023-07-21 18:17:31
我在索引數組中有兩個值(bookingId),現在我想使用這些值更新查詢,但現在無法在循環中中斷數組,我想運行更新查詢(根據數組中的計數值)這是我的代碼,我錯在哪里?$bookingIds; // contaning two values 176,190$counts = count($bookingIds);  // counting array valuesfor ($x = 1; $x <= $counts; $x++)     {        $data = array('approved' => "1");        $this->db->where('bookingId', $bookingIds);        $this->db->update('notifications', $data);    }
查看完整描述

3 回答

?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

我認為你應該在循環時提及數組的索引。并且你$x必須從0


$bookingIds; // contaning two values 176,190

$counts = count($bookingIds);  // counting array values

for ($x = 0; $x < $counts; $x++) 

    {

        $data = array('approved' => "1");

        $this->db->where('bookingId', $bookingIds[$x]);

        $this->db->update('notifications', $data);

    }


查看完整回答
反對 回復 2023-07-21
?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

使用 foreach 來重構上述內容以消除整個索引問題將是


$data = array('approved' => "1");

foreach ($bookingsIds as $bookingId )

{

    $this->db->where('bookingId', $bookingId);

    $this->db->update('notifications', $data);

}


查看完整回答
反對 回復 2023-07-21
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

看起來你正在使用一個框架;如果它提供了一個whereIn()方法,使用它會更有效(運行更少的 SQL 查詢):

$data = ['approved' => '1'];$this->db
    ->whereIn('bookingId', $bookingIds)
    ->update('notifications', $data);


(請注意,您不能將數千個值放入這樣的“where in”子句中,因為查詢會很大。就我個人而言,我會分塊處理此類內容,例如每個查詢 500 條記錄。)

(另外,如果“where in”數組(此處為 )為空,請確保不會發生錯誤$bookingIds。這是一種特殊情況,框架必須正確處理。)


查看完整回答
反對 回復 2023-07-21
  • 3 回答
  • 0 關注
  • 166 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號