2012-03-30 18 views
6

Ich benutze MongoDB und PHP und versuchen, ein $ in basierend auf einem generierten Array zu tun.

Wenn ich das gleiche Array manuell angeben, funktioniert es, aber wenn ich es erstelle, gibt es irgendwelche Ergebnisse mit den gleichen Daten zurück.

ist es, was ich habe:

$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))); 

Ich habe

$ Cursor- checked mit> info()

Und die Elemente im Array sind die gleichen.

Irgendwelche Ideen, was ich falsch mache?

Danke!

Antwort

4

Es ist wahrscheinlich, dass die Datentypen der Nummern nicht übereinstimmen. Verwenden Sie var_dump() für das integrierte Array und das angegebene Array. Sie werden wahrscheinlich sehen, dass einer sie als Zahlen in einer Zeichenfolge und der andere als einfache Ganzzahlen hat.