Php 如果之后的内容为空,则隐藏空行
我想显示一个地方的其他名称。单独的变量将包含来自自定义字段的每个备选名称。但是,某些变量将具有空值Php 如果之后的内容为空,则隐藏空行,php,Php,我想显示一个地方的其他名称。单独的变量将包含来自自定义字段的每个备选名称。但是,某些变量将具有空值 <?php $alt-name1 = "A" $alt-name2 = "B" $alt-name3 = "" $alt-name4 = "D" $alt-name5 = "" printf('%s<br>%s<br>%s<br>%s<br>%s', $alt-name1, $alt-name2, $a
<?php
$alt-name1 = "A"
$alt-name2 = "B"
$alt-name3 = ""
$alt-name4 = "D"
$alt-name5 = ""
printf('%s<br>%s<br>%s<br>%s<br>%s', $alt-name1, $alt-name2, $alt-name3, $alt-name4, $alt-name5);
?>
但是,它隐藏了所有的,并将输出作为:ABD
注意:我有一个替代方案,通过连接以下变量来执行此操作:
<?php
$alt-name1 = "A"
$alt-name2 = "B"
$alt-name3 = ""
$alt-name4 = "D"
$alt-name5 = ""
if($alt-name2 != "") {$alt-name2 = "<br>".$alt-name2;}
if($alt-name3 != "") {$alt-name3 = "<br>".$alt-name3;}
if($alt-name4 != "") {$alt-name4 = "<br>".$alt-name4;}
if($alt-name5 != "") {$alt-name5 = "<br>".$alt-name5;}
printf('%s%s%s%s%s', $alt-name1, $alt-name2, $alt-name3, $alt-name4, $alt-name5);
?>
这种情况下,您不需要的值等效于布尔值false空字符串转换为false。因此,您可以使用以下方法获取所有非空值:
array_filter($alt);
这要求值位于数组中。在将它们转换为一组自变量之前,我假设它们在一个数组中,但您可以:
$alt = array($alt-name1, $alt-name2, $alt-name3);
我希望您知道$alt-name1不是有效的变量名。我使用它是因为你在你的问题中使用了它。要重申,请将值放入数组中
每个值之间的相加对于内爆来说是一个很好的任务。它在数组的每个元素之间放置您想要的任何内容。因此,您可以使用:
implode("<br>", $alt);
print implode("<br>", array_filter($alt));
if(!array_filter($alt)) print "Not Available";
else print implode("<br>",array_filter($alt));
综上所述,假设$alt是要打印的所有值的数组,则可以使用:
implode("<br>", $alt);
print implode("<br>", array_filter($alt));
if(!array_filter($alt)) print "Not Available";
else print implode("<br>",array_filter($alt));
这不会在数组中的最后一项之后添加,我更喜欢这样。如果需要额外的标签,可以在它之后打印
-更新-
根据下面的评论,如果$alt的所有元素都为空,则有一个全新的要求,即打印不可用。同样,数组过滤器也有帮助。如果所有元素都为空,它将返回一个空数组。空数组将转换为布尔值false。因此,您可以使用:
implode("<br>", $alt);
print implode("<br>", array_filter($alt));
if(!array_filter($alt)) print "Not Available";
else print implode("<br>",array_filter($alt));
谢谢你,凯诺。但是,我的计划是在所有可选名称都为空时显示一个不可用的字符串。在这种情况下,我可以使用这个条件吗?iArray_过滤器$alt={$alt=不可用;}