不能使用MongoId类型的对象作为数组

时间:2016-08-08 13:55:32

标签: php arrays mongodb

我在使用echo打印出2d数组中的值时遇到问题,它使用print_r完美地工作:

print_r($array);

结果是:

Array ( [0] => MongoId Object 
( [$id] => 57a789b7ce2350b40e000029 ) [1] => MongoId Object 
( [$id] => 57a72d35ce2350681200002b ) [2] => 3 )

但是,当我尝试使用以下方法访问值时:

echo $similar[0][1];
//or
echo $similar[0][0];

我收到错误:'不能使用MongoId类型的对象作为数组'

我还尝试了here的不同类型的循环,因为错误是通过元素编号特别访问值来触发的,但是我得到了同样的错误,我不确定为什么。任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:1)

由于$similar[0]是MongoId对象,并且想要访问其$id,因此您必须使用$similar[0]->{'$id'})

在您的示例中,元素0和1是MongoId对象,而元素2是3的整数。

所以这就是你打印它们的方式

echo $similar[0]->{'$id'}) # gives 57a789b7ce2350b40e000029
echo $similar[1]->{'$id'}) # gives 57a72d35ce2350681200002b
echo $similar[2] # gives 3