複数のパターンの場合、同じ配列インデックスの下でpreg_matchの結果を返すことが可能でした。つまり、次のpreg_matchがあり、さまざまなサブ文字列(、、)での出現をチェックしてい'&q'ます。  '?q''&keywords'
preg_match('/&q=(.+?)(&|$)|\?q=(.+?)(\&|$)|\&keywords=(.+?)(\&|$)/', urldecode($test_string), $matches); 
次のステートメント  $matches[1]を除外できるように、以下のすべてのオカレンスを確認したいと思います。if
if($matches){   
            if ($matches[1] != ''){
              $query_p = mysql_escape_string($matches[1]);      
            } elseif ($matches[3] != ''){   
              $query_p = mysql_escape_string($matches[3]);      
            } elseif($matches[5] != ''){
              $query_p = mysql_escape_string($matches[5]);
            }
         }