2016-10-03 4 views
0

Ich habe ein Array mit Facebook-Posts, aber ich habe ein Limit für die Anzahl der Posts UND ein Häkchen, das prüft, ob die Nachricht nicht leer ist und ob der Post vom Seitenbesitzer gemacht wurde .Array von Ergebnissen des gefilterten Arrays erstellen

Wie kann ich diese Ergebnisse aus dem ersten Array filtern und aus diesen Daten ein neues Array erstellen? Da die Begrenzung des ersten Arrays keine Option ist, zählt es auch die falschen Nachrichten (durch andere als Seitenbesitzer, bearbeitete Profilbilder usw.).

Mein Code jetzt (relevante Teile):

$feedarray = json_decode($json_object); 

$f = 0; 

foreach ($feedarray->data as $key => $feed_data) 
{ 

    if($feed_data->full_picture != ''){ 
     $fbimage = $feed_data->full_picture; 
    }else{ 
     $fbimage = 'cms/images/placeholder/placeholder.jpg'; 
    } 

    if($feed_data->message > 270){ 
    $shortstrfb = substr($feed_data->message, 0, 270) . '...'; 
    }else{ 
     $shortstrfb = $feed_data->message; 
    } 

    if($feed_data->message != ''){ 
     $f++; 
    } 

    if($f > 2){ 
     break; 
    } 

    if($feed_data->message != '' && $feed_data->from->name == 'page owner'){ 
     $facebookfeed .= ' 
       <div class="col-lg-4 marg-lg-b30"> 
        <div class=" widget"> 
         <div class="card latest-news latest-news--block"> 
          <a href="'.$feed_data->permalink_url.'" class="latest-news__image"> 
           <img src="'.$fbimage.'" width="360" height="204" srcset="'.$fbimage.' 360w, '.$fbimage.' 830w" sizes="(min-width: 992px) 360px, calc(100vw - 30px)" class="card-img-top " alt="nieuws"> 
          </a> 
          <div class="card-block latest-news__content js-col-height-news"> 
           <time class="latest-news__date">'.date("d-m-Y",strtotime($feed_data->updated_time)).'</time> 
           <h4 class="card-title latest-news__title"> 
            <a href="'.$feed_data->permalink_url.'" target="_blank"><i class="fa fa-facebook-official" aria-hidden="true"></i> Bekijk</a> 
           </h4> 
           <div class="card-text latest-news__text"> 
            '.$shortstrfb.' 
           </div> 
          </div> 
         </div> 
        </div> 
       </div>'; 
    } 
} 
echo $facebookfeed; 

Wie Sie kann ich all diese Dinge auf $feedarray überprüfen, während ich wahrscheinlich auf sie überprüfen müssen, und aus den Ergebnissen ein neues Array aufzubauen, die ich kann, benutze wie ich will. Was ist ein guter Weg, um das zu erreichen?

Antwort

0

Sie könnten ein neues Array bauen und darin Ihre Schleife Ergebnis anhängen und am Ende überprüfen seinen Inhalt mit print_r() oder var_dump():

$new_array = array(); 

foreach ($feedarray->data as $key => $feed_data) 
{ 

    if($feed_data->full_picture != ''){ 
     $fbimage = $feed_data->full_picture; 
    }else{ 
     $fbimage = 'cms/images/placeholder/placeholder.jpg'; 
    } 

    if($feed_data->message > 270){ 
    $shortstrfb = substr($feed_data->message, 0, 270) . '...'; 
    }else{ 
     $shortstrfb = $feed_data->message; 
    } 

    if($feed_data->message != ''){ 
     $f++; 
    } 

    if($f > 2){ 
     break; 
    } 

    if($feed_data->message != '' && $feed_data->from->name == 'page owner'){ 
     $facebookfeed .= ' 
       <div class="col-lg-4 marg-lg-b30"> 
        <div class=" widget"> 
         <div class="card latest-news latest-news--block"> 
          <a href="'.$feed_data->permalink_url.'" class="latest-news__image"> 
           <img src="'.$fbimage.'" width="360" height="204" srcset="'.$fbimage.' 360w, '.$fbimage.' 830w" sizes="(min-width: 992px) 360px, calc(100vw - 30px)" class="card-img-top " alt="nieuws"> 
          </a> 
          <div class="card-block latest-news__content js-col-height-news"> 
           <time class="latest-news__date">'.date("d-m-Y",strtotime($feed_data->updated_time)).'</time> 
           <h4 class="card-title latest-news__title"> 
            <a href="'.$feed_data->permalink_url.'" target="_blank"><i class="fa fa-facebook-official" aria-hidden="true"></i> Bekijk</a> 
           </h4> 
           <div class="card-text latest-news__text"> 
            '.$shortstrfb.' 
           </div> 
          </div> 
         </div> 
        </div> 
       </div>'; 
    } 

    // build the new array : 
    $new_array[] = array(
     'fbimage' => $fbimage, 
     'shortstrfb' => $shortstrfb, 
     'facebookfeed' => $facebookfeed 
    ); 
} 
print_r($new_array); 

Hoffe, es hilft.

Verwandte Themen