我有一个数组,它是从twitter API检索的一些数据的json_decode。
这里比我使用的阵列的部分: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
最后,我的数据库只有在鸣叫列接收username列User1
和Text of message
。没有任何内容插入到id或年份中。尽管它在第一个推文之后为每条推文创建了空行。不知道我做错了什么。任何帮助将不胜感激。谢谢!
试调试,删除所有什么是你的foreach循环,并测试print_r($鸣叫) –
@FaceOfJock这foreach是另一个foreach。我在第一个foreach中有一个print_r。 – MOOcow102
我之所以这么说,是因为你的$ tweet的大小是3,而你仅用2个对象显示了你的数组,所以可能你在第二个foreach中有错误,尝试添加另一个print_r并显示结果 –