我在使用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的不同类型的循环,因为错误是通过元素编号特别访问值来触发的,但是我得到了同样的错误,我不确定为什么。任何帮助将不胜感激:)
答案 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