基于数组值为空的if语句拒绝工作

时间:2013-01-29 14:24:05

标签: php

我编写了以下脚本来回显Outlook CSV文件的内容。

以下是脚本的一部分,它将CSV分解为一个数组,该数组仅提取以下三个值:名字,姓氏和电子邮件。

for ($i=87; $i<= $countdel-87; $i=$i+88 ){

if(empty($readout[$i])){ echo "<b style=\"color:RED;\">FIRST NAME N/A</b>"; }
else{ echo str_replace("Categories","",$readout[$i]).".........................."; }

if(empty($readout[$i+2])){ echo "<b style=\"color:RED;\">LAST NAME N/A</b>".".........................."; }
else{ echo $readout[$i+2].".........................."; };

if(empty($readout[$i+14])){ echo "<b style=\"color:RED;\">EMAIL N/A</b>"; }
else{ echo $readout[$i+14]; };

echo "<br>";
}

然后代码会吐出一个如下所示的字符串:

Joe ............. Smith ...............jSmith@yahoo.com

现在说我们没有姓氏或电子邮件,而是吐出来

Joe .......... LAST NAME N/A .............. EMAIL N/A

这一切都只是花花公子。我遇到问题的地方是我没有名字,因为它打印出来。

........... Smith ..............jSmith@yahoo.com

这段代码似乎是问题所在:

if(empty($readout[$i])){ echo "<b style=\"color:RED;\">FIRST NAME N/A</b>"; }

看来$readout[$i]永远不会是空的,虽然我没有看到任何值没有打印出来的东西。但是所有其他$readout[$i+$foo]数组都可以工作。

1 个答案:

答案 0 :(得分:0)

我能够让它工作,发生了什么$readout[$i]在它的开头有空格,导致它不是'空'。除此之外,outlook CSV集群的第二行的第一列将该列共享为第一列的最后一行。这就是为什么我必须从$readout[$i] FYI中删除“类别”。

以下是我在if语句中构建新构造的方法。

我只是使用trim()功能删除空格,然后使用str_replace()删除“类别”一词。最后,我检查一下该值是否为空白。

if(trim(str_replace("Categories","",$readout[$i])) == ""){ echo "<b style=\"color:RED;\">FIRST NAME N/A</b>".".........................."; }
else{ echo str_replace("Categories","",$readout[$i]).".........................."; }

谢谢大家的答案和建议。

相关问题