如何在一个循环中使用两个对象键及其值

时间:2017-09-13 10:10:44

标签: php json facebook api loops

我有一个JSON对象,其中包含两个键eventsfeed,它们都包含来自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"
      },

正如您所看到的,feedevents都包含我想要显示的数据。我目前的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获取所有信息,但我需要两者的信息。我怎样才能做到这一点?

0 个答案:

没有答案