我有一個數組,它是從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並顯示結果 –