我有以下查找(来自mongodb)字段工作正常,但当我尝试使用preg_replace时,我收到以下错误消息
注意:数组到字符串转换为...
我的代码:
$mongorow = $collection->findOne(array('_id' => new MongoId($id))); //finds based on ID
$dotodot = preg_replace("/_DOT_/", ".", $mongorow);
答案 0 :(得分:1)
问题是 $ mongorow 是一个数组,您将其视为字符串或变量。
它应该是:
$dotodot = preg_replace("/_DOT_/", ".", $mongorow['_id']);
答案 1 :(得分:0)
findOne()
返回一个数组(如果搜索失败,则为NULL),因此在将其视为字符串之前,必须首先从结果中获取该字段。
$str = $mongorow['whateverYouWereLookingFor'];
$dotodot = preg_replace("/_DOT_/", ".", $str);
编辑:如果您需要替换整个数组,则需要查看array_map()
函数。
答案 2 :(得分:0)
$mongorow
是一个数组。函数pref_replace不接受数组作为第二个参数。您需要检查数组的值并检查您需要使用哪个数组。选择所谓的数组值,如$mongorow['value']
。
如果您尚未向阵列介绍,请不要犹豫,阅读this页面。