2014-01-04 6 views
0

Я пытаюсь отфильтровать вывод массива из поиска/твитов GET (удалять твиты с пустым ключом «geo» и сохранять твиты с ключом «geo»), используя этот фрагмент кода.PHP Фильтр по значению ключа

$data = (array) $cb->search_tweets($params); //copy of raw print_r array here: http://pastebin.com/b2BvwUuJ 

$filtered = array_filter($data, function($v) { 

    return $v['geo'] != 'false'; 

}); 

print_r($filtered); 

В результате появляется следующий код ошибки.

Невозможно использовать объект типа StdClass как массив в ...

Что я делаю не так?

ответ

2

Результаты, которые у вас есть, не являются массивами, являются объектами. Измените сравнение с этим:

return $v->geo != 'false'; 
+0

print_r теперь дает мне пустой массив(); как результат, используя return $ v-> geo! = '';. Не могли бы вы объяснить, почему? – Hidde

+0

Скорее всего, они фильтруют их все. Вы уверены, что хотите отфильтровать их с этим условием? Как выглядят объекты без 'geo'? Вы можете фильтровать как '$ v-> geo! = False' или' $ v-> geo! = Null' –

+0

Я исправил его самостоятельно. Использование '$ data ['statuses']' – Hidde

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