Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果之后的内容为空,则隐藏空行_Php - Fatal编程技术网

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=不可用;}