Php “打印”;“文本”;当csv文件中的字段为空时

Php “打印”;“文本”;当csv文件中的字段为空时,php,arrays,csv,Php,Arrays,Csv,遵守守则 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\u id[$x]包含id 当id为空时,我想将“id not allocated”推送到数组中的特定$行[$x]。请帮帮

遵守守则

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\u id[$x]
包含id

当id为空时,我想将“id not allocated”推送到数组中的特定
$行[$x]
。请帮帮我

我编写的代码将跳过空字段,而不是打印“未分配id”

尝试更改

elseif($line[$x]==1 and $cat_ids[$x]="")


由于
$cat\u ids[$x]=”
语句将值null分配给
$cat\u ids[$x]
首先存储决策结果,然后根据该结果分配新值:

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

因此,您可以更好地检查代码是否真的达到了预期效果。

如果您的代码有问题,应该从调试开始。它通常从正确缩进代码开始。
$filled = ($line[$x] == 1 and !empty($cat_ids[$x]));
var_dump($filled);
$cat1[] = $filled ? $cat_ids[$x] : "id not allocated";