-1

我有一个数组,我已将其放入 foreach 循环中,其中数组的每个值都将输出给用户。如果用户输入了搜索查询,则将再次检查该值作为正则表达式,仅在匹配时返回,否则仅输出该值。

我遇到的问题是,如果无条件或正则表达式条件输出都没有输出任何内容,我无法弄清楚如何制作有条件的“未找到结果”输出。代码如下。

foreach ($result as $value)
{
    // check to see if query term is set and if so run regex comparison
    if (isset($pattern))
    {
        if (preg_match("/^$pattern/i", $value)) 
        {
            echo $value;
            echo "<br />";
        }   
    }

    // if query is not set, simply output the value
    else
    {
        echo $value;
        echo "<br />";
    }

    // and if there has been no output for either the regex conditional, or other output,                   
    // I want output "no results". How?
}
4

2 回答 2

3

在您的代码段添加之前:

if(empty($result)) {
  echo 'no results';
} else {
  //the rest of your code
}
于 2012-11-02T20:46:11.210 回答
1

如果我理解正确,这就是您需要的:

$found = false;    
foreach ($result as $value)
{
  if (isset($pattern))
  {
    if (preg_match("/^$pattern/i", $value)) 
    {
      $found = true;
      echo $value;
      echo "<br />";
    }   
  }

  // if query is not set, simply output the value
  else
  {
    $found = true;
    echo $value;
    echo "<br />";
  }
}

if($found)
{
  echo "Sorry, nothing found.";
}
于 2012-11-02T21:05:40.523 回答