注意:preg_replace php中的数组到字符串转换

时间:2014-02-06 14:28:42

标签: php regex preg-replace

我有以下查找(来自mongodb)字段工作正常,但当我尝试使用preg_replace时,我收到以下错误消息

  

注意:数组到字符串转换为...

我的代码:

$mongorow = $collection->findOne(array('_id' => new MongoId($id))); //finds based on ID
$dotodot  = preg_replace("/_DOT_/",  ".", $mongorow);

3 个答案:

答案 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页面。