-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 に答える