0

codeigniter のコントローラー ファイルで、モデルからデータをフェッチします。結果を検証するために foreach ループを使用しましたが、問題はありません。しかし、 foreach を使用する代わりに、 in_array() を使用して、変数がデータベースの結果配列にあるかどうかを制御したいと考えています。コードは次のとおりです。

function _remap($method,$params = array()){ 

//in construct, I use $this->model
if (isset($params[0])) {

    $this->db->distinct('*****');
    $this->db->from('*****');
    $this->db->where('****',****);

    $query = $this->db->get();

    if (in_array($params[0],$query->results())) {
        echo "in_array works";
    }
}

しかし、何も反響しません。どうすればできますか?ありがとう。

4

3 に答える 3

2

マニュアルによると、あなたは使用することができますresult_array()。そうしないと、オブジェクトが返されます。もちろんin_array、オブジェクトには使用できません。

また、マニュアルによると、コードを次のように変更できます

if (in_array($params[0], $query->first_row('array')) {
  // ...
于 2012-06-23T10:57:55.203 に答える
1

in_arrayは、値リストの値をチェックするためだけに使用されます。例
:array( "Mac"、 "NT"、 "Irix"、 "Linux");

in_arrayはオブジェクト配列を返すため、状況に応じて機能しません。

于 2012-06-23T11:00:07.887 に答える
0

あなたが望む仕事をしてTrueまたはFalseを返すヘルパーメソッドを書くことをお勧めします。それを行う方法に関する情報は、ここで見つけることができます

于 2012-06-23T16:16:36.880 に答える