2012-03-30 106 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))); 

我使用

$ CURSOR->信息()

和數組中的項目是相同的檢查。

任何想法我做錯了什麼?

謝謝!

回答

4

這可能是數字的數據類型不一樣。嘗試在構建的數組和指定的數組上使用var_dump()。你可能會看到一個將它們作爲字符串中的數字,另一個作爲簡單整數。