2016-10-03 9 views
0

私はFacebookの投稿で配列を取得しましたが、投稿の数に制限があります。また、メッセージが空でないかどうかをチェックするチェックと、ページの所有者。フィルタリングされた配列の結果から配列を構築する

最初の配列からこれらの結果を除外し、そのデータから新しい配列を作成するにはどうすればよいですか?最初の配列を制限することはオプションではないため、間違ったメッセージもカウントされます(ページ所有者、編集されたプロフィール写真など以外)。

今私のコード(関連部分):

$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; 

あなたは、私はおそらくそれをチェックする必要がありながら、私は$feedarray上のすべてのそれらのものをご確認ください見ることができるように、との結果が新しいアレイを構築するから、私ができます私が望むように使用してください。これにアプローチする良い方法は何ですか?

答えて

0

新しい配列を作成し、その中にあなたのループの結果を追加し、最後にprint_r()または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); 

はそれがお役に立てば幸いです。

関連する問題