如果条件没有返回所需的结果在json数组中

时间:2018-01-11 11:35:41

标签: php

当attremark为null时,我想在数组中按“Ab”。我使用下面的代码在数组中推送'Ab'。但它不会将它推入数组中。我的if条件有什么问题?

$q1 = "select to_char(tin, 'DD-MON-YYYY hh24:mm:ss') as tin, 
  to_char(tout, 'dd-mm-yyyy hh24:mm:ss') as tout from npinout 
  where compcode='".$compcode."' 
  and empcode='".$empcode."' 
  and to_char(tin, 'MON-YYYY') ='".$date."' 
  and trunc(tin)='".$stmtb['DT']."' 
  ORDER BY tin " ;
            
            $rs1=oci_parse($con,$q1);
            $ex1=oci_execute($rs1); 
        
            while($row1= oci_fetch_assoc($rs1))
            {
                    if($stmtb['ATTREMARK']=='')
                    {
                        $stmtc['TIN']="Ab";
                        $stmtc['TOUT']="Ab";
                    }
                    else
                    {
                     
                        $stmtc['TIN']=$row1['TIN'];
                        $stmtc['TOUT']=$row1['TOUT'];
                    } 
                    echo json_encode($stmtc); 
            }

当php中的attremark为空时,如何在数组中按'Ab'?

2 个答案:

答案 0 :(得分:0)

比较很奇怪。最好的办法是在该值上var_dump。所以你可以看到它到底是什么。我的猜测是它只是null。

if (is_null($stmtb['ATTERMARK']) 

我认为你的问题是你正在寻找一个空字符串'',它实际上并不是空的。需要注意的另一件事是你的条件==!= ===。如果您想检查它是否为空,则更好的解决方案是($stmtb['ATTERMARK'] === null)

答案 1 :(得分:0)

这将帮助您检查密钥的空值。

 //checking for both null and empty

 if(empty($stmtb['ATTREMARK']) || is_null($stmtb['ATTREMARK'])){
       // do your stuff here
    }

如果您只想检查null或空,请使用单次检查。