2012-03-30 3 views
6

MongoDB와 PHP를 사용하고 생성 된 배열을 기반으로 $ in을 사용하려고합니다.

동일한 배열을 수동으로 지정하면 작동하지만 빌드하면 동일한 데이터가있는 결과가 반환됩니다.

내가 무슨있다 : 나는

$ cursor-> 정보()

를 사용하여 확인했습니다 그리고 배열의 항목이 동일

$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()를 사용해보십시오. 여러분은 아마 하나의 숫자가 문자열에 있고 다른 하나는 단순한 정수라고 생각할 것입니다.