2017-06-22 142 views
0

我確定這已被回答,因此如果您有相關鏈接,請告訴我。將可變參數傳遞到數組

我需要傳遞一個條件到一個數組中。 (如果這是一個壞主意,請提供另一種解決方案)。

PHP

$solUpdate = ""; 
    if($info[$i]->shortSubject == $el && $info[$i]->id != $tid){ 
       $solStat = $wpdb->get_content('is_ticket','ticket_id ='.$tid,'solarStatus'); 
       $check = solarCurl($info[$i]->id,"Tickets",false); 
       $check = json_decode($check); 
       if($solStat != $st){ 
        $solUpdate = ("solarStatus"=>$st); 
       } 
       $wpdb->update('is_ticket', array('solarID'=>$info[$i]->id,$solUpdate), array('parent_ticket'=>$tid, 'solarTType'=>$check->problemtype->id)); 
      } 

這裏就是我試圖完成,

如果$ solStat!= $ ST,那麼我想更新$日該行,但... $ st可能並不總是不同的,所以沒有實際的更新,但是...我不想寫一個其他的我如果,我認爲這是可怕的代碼實踐。我確定這很簡單,我期待着找到如何做到這一點。感謝您的幫助。

回答

2

行:

$solUpdate = ("solarStatus"=>$st); 

是無效的PHP。

您可以收集要在運行$wpdb->update()調用之前存儲在$solUpdate數組來更新列:

$solUpdate = array(); 
if ($info[$i]->shortSubject == $el && $info[$i]->id != $tid) { 
    $solStat = $wpdb->get_content('is_ticket', 'ticket_id='.$tid,'solarStatus'); 
    $check = solarCurl($info[$i]->id,"Tickets",false); 
    $check = json_decode($check); 

    $solUpdate['solarID'] = $info[$i]->id; 
    if ($solStat != $st) { 
     $solUpdate['solarStatus'] = $st; 
    } 

    $where = array(
     'parent_ticket' => $tid, 
     'solarTType' => $check->problemtype->id 
    ); 

    $wpdb->update('is_ticket', $solUpdate, $where); 

}

+0

完美......這有助於配發,我徹底忘了建設數組是最好的選擇。 – Cam