将Variable参数传递给数组

时间:2017-06-22 18:03:23

标签: php arrays

我确定已经回复了,所以如果您有相关链接,请告诉我。

我需要将条件传递给数组。 (如果这是一个坏主意,请尽量提供另一种解决方案)。

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更新那行,但是.... $ st可能并不总是不同,所以没有实际的更新要做,但是......我不想给我写一个别的if,我认为这是可怕的代码练习。我确信这很容易,我已经找到了如何做到这一点。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

该行:

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

无效PHP。

在运行$solUpdate来电之前,您可以在$wpdb->update()存储的数组中收集要更新的列:

$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);

}