如果'if'语句为true,则将其添加到true列表中,否则忽略它

时间:2016-01-01 01:37:08

标签: php regex if-statement

我正在尝试制作匹配的东西。如果'if'语句像这样

  $name = "how"; // <<<this is an input
if(preg_match(  "/(How|my|brain|works)/i",$name)){
			$result1= "this is one of the results";
}else{
          $result1= " ";

我计划存储结果,如果有实际匹配,它会显示第一条消息,有时可能是图片。问题是我如何能够做到这一点,以便当我以后进行比赛时,如果不是这样,它将没有空白页面。我怎么能跳过它。例如,如果我正在做一个列表并且大约有5个与输入匹配,它将显示5个输入而不是显示10个列表。该列表可能看起来像这样

<ul>
  <li><?php echo $result1 ?></li>
  <li><?php echo $resutl2 ?></li>
  <li><?php echo $match10    // and so on ?></li>
</ul>

我怎样才能使它跳过例如匹配9,因为它等于空格或显示它,因为它不等于空格。问题是它会列出所有3,如果match9等于空格,它会显示空格,我希望它跳过那些。

1 个答案:

答案 0 :(得分:4)

使用数组而不是单独的变量,只有在匹配时才添加到数组中。

$results = array();

$name = "how"; // <<<this is an input
if(preg_match(  "/(How|my|brain|works)/i",$name)){
    $results[] = "this is one of the results";
}

然后,当您显示结果时:

<ul>
<?php
foreach ($results as $r) {
    echo "<li>$r</li>\n";
}
?>
</ul>