如果print_r在PHP中是空的条件

时间:2018-06-08 20:41:40

标签: php count conditional

我正在尝试使用print_r获取一个n else语句,这样如果没有值,则输出“no values”。 在代码中,我将json的值转换为数组。 我想要实现的逻辑是 IF fieldTag包含“i”THEN输出与其关联的内容 ELSE说空了。 现在输出空白而不是“无值”。 感谢

for($b=0; $b<count($res['entries'][$i]['bib']['varFields']); $b++) //loop thru the varFields            
{
    if($res['entries'][$i]['bib']['varFields'][$b]['fieldTag'] == "i")
    {                       
        $subfieldText2 = $res['entries'][$i]['bib']['varFields'][$b]['subfields'][0]['content']."<br>";
        if(count($subfieldText2) > 0) { 
            print_r($subfieldText2); 
        } else { 
            echo "no values";
        }
    }
}    

2 个答案:

答案 0 :(得分:0)

count()用于数组,而不是字符串,获取字符串长度的方法是strlen()。如果你想检查一个空字符串,只需将它与$var == ""进行比较,你就不需要得到它。

但是你将"<br>"连接到值,所以长度永远不会为零。您可以在连接之前检查的长度。

$subfieldText2 = $res['entries'][$i]['bib']['varFields'][$b]['subfields'][0]['content'];
if($subfieldText2 != "") { 
    $subfieldText2 .= "<br>";
    print_r($subfieldText2); 
} else { 
    echo "no values";
}

为避免重复该长表达式来访问该字段,您可以使用foreach

for($res['entries'][$i]['bib']['varFields'] as $field) {
    if ($field['fieldTag'] == "i") {
        $subfieldText2 = $field['subfields'][0]['content'];
        ...
    }
}

答案 1 :(得分:0)

这对我有用,谢谢大家

$subfieldText2="not detected";

          echo "ISBN: ";
                for($b=0; $b<count($res['entries'][$i]['bib']['varFields']); $b++) //loop thru the varFields
                                    {
                                      if($res['entries'][$i]['bib']['varFields'][$b]['fieldTag'] == "i")
                                            {

                                            $subfieldText2 = $res['entries'][$i]['bib']['varFields'][$b]['subfields'][0]['content'];
                                            echo $subfieldText2.", ";

                                            }
                                      }

            echo $subfieldText2;