我有一个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
,但我需要从两个信息。我怎样才能做到这一点?
如何从第一循环解耦输出。你可以循环一次,按照你想要的顺序建立一个你需要输出的位的新数组,然后遍历该数组写出信息。 –