2012-03-30 9 views
6

MongoDBとPHPを使用していて、生成された配列に基づいて$ inを実行しようとしています。

私は手動で同じ配列を指定すると動作しますが、構築するときには同じデータの結果が返されます。

私が持っているものがあります:

$settings = array(); 
foreach($items as $item) { 
    $settings[] = $item['id']; 
} 

//Settings is the same as this 
$setting2 = array(1,2,3,4,5,6,7,8); 

//This returns no results 
$cursor = $collection->find(array('status' => 0, 'sid' => array('$in' => $settings))); 


//This does return results 
$cursor = $collection->find(array('status' => 0, 'sid' => array('$in' => $setting2))); 

私は

$カーソル・>情報を(使用してチェックしました)

そして配列内の項目は同じです。

私が間違っていることは何ですか?

ありがとうございます!

答えて

4

数値のデータ型が同じではない可能性があります。構築された配列と指定された配列に対してvar_dump()を使ってみてください。あなたはおそらく文字列中の数字としてそれらを持っていて、他は単純な整数として見るでしょう。

関連する問題