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


Cannot use object of type MongoId as array

我在使用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类型的对象用作数组">

我还尝试了不同类型的循环,以防错误是通过访问特定于元素号的值触发的,但我得到了相同的错误,我不确定为什么。如有任何帮助,我们将不胜感激:(

由于$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