У меня есть массив, который является json_decode некоторых данных, полученных из API twitter.
Вот часть массива, чем я использую:ForEach выполняет только одну задачу
Array(
[0]=>stdClass Object (
[user] => stdClass Object (
[screen_name] => User1
)
[text] => Text of message
[id] => 220301332135952385
[created_at] => Tue Jul 03 23:41:45 +0000 2012
)
[1]=>stdClass Object (
[user] => stdClass Object (
[screen_name] => User2
)
[text] => Text of message
[id] => 220301332135952385
[created_at] => Tue Jul 03 23:41:45 +0000 2012
)
)
Проблема я бегу в том, что мой PHP только получать значения User1
и Text of message
от него. Мой фактический массив намного длиннее, но он следует описанному выше шаблону.
Вот мой PHP:
foreach($tweet as $num => $val) {
$username = $tweet[$num]->user->screen_name;
echo $num . "-USER-" . $username . "-NAME ";
$tweet = $tweet[$num]->text;
$id = $tweet[$num]->id_str;
$year = substr($tweet[$num]->created_at, -4);
$statement = $connect->prepare("INSERT INTO table (username, tweet, id, year) VALUES ('$username', '$tweet', '$id', '$year')");
$statement->execute();
}
$tweet
мой массив. echo
есть что-то, что я использовал для отладки. Она выводит:
1-USER-User1-NAME 2-USER--NAME 3-USER--NAME
Я ожидаю:
1-USER-User1-NAME 2-USER-User2-NAME
Наконец, моя база данных получает только User1
в столбце имя пользователя и Text of message
в колонке чирикать. Ничто не вводится в id или year. Хотя, он создает пустые строки для каждого твита после первого. Не уверен, что я делаю неправильно. Любая помощь будет принята с благодарностью. Благодаря!
попытка отладки, удалить все, что в цикле Еогеасп , и протестируйте print_r ($ tweet) –
@FaceOfJock Этот foreach находится внутри другого foreach. У меня есть print_r внутри первого foreach. – MOOcow102
Я сказал это, потому что размер вашего твита равен 3, и вы показали свой массив только с двумя объектами, так что, возможно, у вас что-то не так внутри вашего второго foreach, попробуйте добавить еще один print_r и показать мне результат –