2016-06-15 3 views
0

私は開発者がフィルタを適用できるようにするAPIを使用しています。文字列から除外されたIDのリストを確認する

現在のところ、/ users = filters = user_id:10,20,30,40などのエンドポイントがありますが、さらにラインフィルタを使用できます。 ?excample

/ユーザーのparams =のuser_idの場合:10,20,30、名:ジョン、日付:20160601

私が知りたいのですが物事のカップルを決定するについて行くための最良の方法です。

user_idフィルタが設定されている場合。フィルタからのみIDを取得します。

+0

の組み合わせを試みることができますか? –

+0

カンマを除いて、いいえ。 –

答えて

1
<?php 
    //Make sure the filter is set 
    if(!empty($_GET['filters'])){ 
     $filters = $_GET['filters']; 
     if(strpos($filters,'user_id') >= 0){ 
      preg_match('/user_id:[0-9 ,]+/',$filters,$matches); 
      if(count($matches[0])){ 
       //Parse IDs 
       $ids = substr($matches[0],(strpos($matches[0],":")+1),(strlen($matches[0])-strpos($matches[0],":"))); 
       $ids = explode(',',$ids); 
       //In case we take in an extra comma 
       if($ids[count($ids)-1] == ""){ 
        unset($ids[count($ids)-1]); 
       } 
       //Do something with IDs here 
       var_dump($ids); 
      } 
     }else{ 
      echo 'not set'; 
     } 
    }else{ 
      echo 'No filters'; 
    } 
+0

それは最初の部分を解決しますが、今では複数のフィルタが設定されていると仮定してIDSのみを取得する方法はありますか? –

+0

フィルターとフィルター値の両方を区切るのに同じ区切り文字を使用しているので、パーサーを設定する必要があります。可能であれば、フィルターをセミコロンまたはコンマ以外のもので区切ります。 – robinkunde

+0

これはコードで処理されます。彼が提供したデータでそれをテストしました。 – ksealey

関連する問題