根据过滤后的数组

时间:2016-10-03 11:44:34

标签: php arrays loops

我有一个带有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上查看所有这些内容,而我可能需要检查它,并从结果中构建一个我可以按照我想要的方式使用的新数组。什么是解决这个问题的好方法?

1 个答案:

答案 0 :(得分: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);

希望它有所帮助。