观察代码
if($line[$x]==1 and !empty($cat_ids[$x]))
array_push($cat1,$cat_ids[$x]);
elseif($line[$x]==1 and $cat_ids[$x]="")
array_push($cat1,"id not allocated");
$line[$x]
包含1,$cat_ids[$x]
包含ID。
当id为空时,我想将“id not allocated”推送到该特定$line[$x]
的数组中。请帮帮我......
我写的代码是跳过空字段而不是打印'id not allocated'
答案 0 :(得分:1)
尝试更改
elseif($line[$x]==1 and $cat_ids[$x]="")
到
elseif($line[$x]==1 and $cat_ids[$x]=="")
因为$cat_ids[$x]=""
语句会将值null赋给$cat_ids[$x]
答案 1 :(得分:0)
首先存储决策的结果,然后根据该结果分配新值:
$filled = ($line[$x] == 1 and !empty($cat_ids[$x]));
$cat1[] = $filled ? $cat_ids[$x] : "id not allocated";
由于存储到变量,您也可以轻松调试它:
$filled = ($line[$x] == 1 and !empty($cat_ids[$x]));
var_dump($filled);
$cat1[] = $filled ? $cat_ids[$x] : "id not allocated";
因此,您可以更好地检查代码是否真正符合您的预期。