我有一個JSON對象,它包含兩個鍵events
和feed
,它們都包含來自Facebook頁面的值。數據需要在我的網站上通過彼此混合顯示。如何在一個循環內使用兩個對象鍵和它們的值
像這樣:
Facebook post1
Facebook post2
Event1
Facebook post3
Event2
Facebook post4
問題是我怎麼能叫從一個foreach循環內這兩個鍵的值?
一個小例子就是我的對象看起來像(可能是一個小錯字在這裏和那裏,因爲我不能粘貼整個對象,這是30.000線長):
{
"events": {
"data": [
{
"name": "InfraTech 2019",
"id": "255151358248763"
},
{
"name": "26e editie Nacht van Oranje",
"description": "Traditioneel op de avond voor Koningsdag vindt in Ahoy het grootste Hollandse Muziekfeest plaats: de Nacht van Oranje. Dat betekent feest en meezingen met de grootste hits van vaderlandse top-artiesten, de medleyblokken en afsluiter Lee Towers. Alle songteksten verschijnen op lichtkranten boven het podium, dus trek je oranjepak aan en doe mee.
Voor dit evenement geldt een minimumleeftijd van 18 jaar. Er kan bij het evenement worden gevraagd om legitimatie in geval van twijfel over leeftijd.",
"id": "1846453685675848"
},
{
"name": "Premier League Darts in Rotterdam Ahoy",
"description": "De beste darters ter wereld komen terug naar Rotterdam! De PDC heeft bekend gemaakt dat de twaalfde speelronde van de Premier League op 19 april plaats zal vinden in Rotterdam Ahoy! Het dartsnajaar moet nog beginnen, maar we kijken nu al uit naar 19 april.",
"id": "1620470334638329"
}
],
},
"feed": {
"data": [
{
"from": {
"name": "Rotterdam Ahoy",
"id": "165327986836920"
},
"full_picture": "https://scontent.xx.fbcdn.net/v/t1.0-9/s720x720/21752266_1452737231429316_7827254313071348737_n.png?oh=c9ba179a6f811d9f4e7e493b1d17b366&oe=5A4456AF",
"id": "165327986836920_1452737261429313"
},
正如你可以看到這兩個feed
和events
包含我想要顯示的數據。我當前的PHP代碼是這樣的:
<?
error_reporting(-1);
$json_object = file_get_contents("https://graph.facebook.com/v2.10/165327986836920?fields=events%7Bname%2Cdescription%7D%2Cfeed%7Bfrom%2Cmessage%2Cfull_picture%7D&access_token=1234");
$feedarray = json_decode($json_object);
// echo '<pre>';
// print_r($feedarray->events);
// echo '</pre>';
$f = 0;
foreach ($feedarray->events->data as $key => $feed_data)
{
if($feed_data->full_picture != ''){
$fbimage = $feed_data->full_picture;
}else{
$fbimage = 'images/backgroundheader.jpg';
}
$shortstrfb = substr($feed_data->message, 0, 170) . '...';
if($feed_data->message != ''){
$f++;
}
if($f > 10){
break;
}
echo $feed_data->from->name;
if($feed_data->from->name == 'Rotterdam Ahoy'){
$facebookfeed .= '
<div class="col-sm-6 col-lg-4 blog-isotope-item">
<div class="itemContainer zn_columns zn_columns3">
<div class="itemThumbnail">
<a href="'.$feed_data->permalink_url.'" target="_blank">
<img width="760" height="508" src="'.$fbimage.'" class="wp-post-image" alt="'.$feed_data->name.'">
</a>
<div class="overlay">
<div class="overlay__inner">
<a href="'.$feed_data->permalink_url.'" target="_blank" class="readMore" title="" data-readmore="Bekijk op Facebook"></a>
</div>
</div>
</div>
<div class="itemHeader">
<h3 class="itemTitle">
<a href="'.$feed_data->permalink_url.'" target="_blank">'.$feed_data->name.'</a>
</h3>
<div class="post_details">
<span class="catItemDateCreated"><span class="glyphicon glyphicon-calendar"></span> '.date("d-m-Y",strtotime($feed_data->updated_time)).'</span>
<span class="catItemAuthor">by <a href="'.$feed_data->permalink_url.'" title="'.$feed_data->name.'" rel="author">'.$feed_data->name.'</a></span>
</div>
</div>
<div class="itemBody">
<div class="itemIntroText">
'.$shortstrfb.'
</div>
<div class="clear">
</div>
</div>
</div>
</div>';
}
}
if(isset($facebookfeed)){
echo $facebookfeed;
}
?>
只獲取所有信息,現在從events
,但我需要從兩個信息。我怎樣才能做到這一點?
如何從第一循環解耦輸出。你可以循環一次,按照你想要的順序建立一個你需要輸出的位的新數組,然後遍歷該數組寫出信息。 –