Сделайте var_dump
на $item->title
, потому что это не массив, это объект.str_replace
может работать только с реальными массивами и строками.Если вы ожидаете, что это будет массив, то у вас могут возникнуть некоторые проблемы в другом месте, и я бы изучил это.
Если вы просто ищете патч, вы можете сойти с кастингаЭто.Если бы все остальное работало, я бы сделал это, потому что у него действительно было наименьшее количество побочных эффектов:
// convert it to an array before passing it through str_replace
// (array) $item->title
// then convert it back to its original form by casting the result back
// (object) str_replace
$item->title = (object) str_replace( " - Home", "", (array) $item->title );
Если title
должен быть массивом, вы можете обойтись без (object)
, ноЯ думаю, что было бы лучше отследить, где устанавливается title
, и иметь правильное значение для начала.
Кстати - если вы планируете использовать $item->title
внеЦикл, вы также должны убедиться, что вы используете ссылку для обновления самого элемента:
foreach($results->result as &$item)
{
$item->title = (object) str_replace( " - Home", "", (array) $item->title );
}