MongoDB PHP使用$in和数组


MongoDB PHP using $in with array

我正在使用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->info()

数组中的项是相同的。

你知道我做错了什么吗?

谢谢!

数字的数据类型可能不相同。请尝试对生成的数组和指定的数组使用var_dump()。您可能会看到其中一个将它们作为字符串中的数字,另一个则作为简单整数。