2012-03-30 21 views
6

Sto usando MongoDB e PHP e sto provando a fare $ in base a un array generato.

Quando si specifica lo stesso array manualmente, funziona, ma quando lo costruisco, restituisce qualsiasi risultato con gli stessi dati.

C'è quello che ho:

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

Ho controllato usando

$ cursor-> Informazioni()

E gli elementi della serie sono gli stessi.

Qualche idea su cosa sto facendo male?

Grazie!

risposta

4

È probabile che i tipi di dati dei numeri non siano gli stessi. Prova a usare var_dump() sull'array costruito e sull'array specificato. Probabilmente vedrai che uno li ha come numeri in una stringa e l'altro come semplici numeri interi.