2014-02-06 4 views
0

У меня есть поле следующей находки (от MongoDB) работает хорошо, но когда я пытаюсь использовать preg_replace, я получаю следующее сообщение об ошибкеПримечания: массив преобразования строки в preg_replace PHP

Примечания: массив в строку преобразование в ...

Мой код:

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

Try: '$ dotodot = preg_replace ("/_ DOT_/",". ", Implode ('', $ mongorow));' – anubhava

ответ

1

проблема в том, что $ mongorow массив d вы рассматриваете его как строку или переменную.

должно быть:

$dotodot = preg_replace("/_DOT_/", ".", $mongorow['_id']); 
+0

pls, как я рассматриваю его как массив, мне просто нужно заменить значение везде он существует в массиве. извините, я немного новичок в этом :) – Kingsley

+0

если я делаю: $ dotodot = preg_replace ("/ _ DOT_ /", ".", $ mongorow ['_ id']); нет сообщения об ошибке, но я думаю, что он ищет поля id. поле, которое я планирую сделать для этих изменений: $ dotodot = preg_replace ("/ _ DOT_ /", ".", $ mongorow ['properties']); – Kingsley

+0

может быть .. вы должны посмотреть в коде или предоставить здесь ... –

0

findOne() возвращает массив (или NULL, если поиск не удалось), так что вы должны сначала получить поле из своего результата, прежде чем рассматривать его как String.

$str = $mongorow['whateverYouWereLookingFor']; 
$dotodot = preg_replace("/_DOT_/", ".", $str); 

Edit: Если вам нужно заменить через весь массив, вы хотите посмотреть на функции array_map().

+0

by $ str = $ mongorow ['whateverYouWereLookingFor'] ;? это «whatYouWereLookingFor», ссылаясь на поле, в котором я хочу внести замену? – Kingsley

0

$mongorow - это массив. Функция pref_replace не принимает массив как второй параметр. Вам нужно проверить значения массива и проверить, какой из них вам нужен. Выберите так называемое значение массива, например $mongorow['value'].

Если вы еще не знакомы с массивами, не стесняйтесь читать страницу this.

Смежные вопросы