从已过滤数组的结果中创建数组
问题描述:
我收到了一个包含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
所有这些事情,而我可能需要检查它,并且从结果建立一个新的数组,我可以像我想要的那样使用。什么是解决这个问题的好方法?
答
你可以建立一个新的数组,并在其中添加你的循环的结果,并在年底检查其内容与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);
希望它能帮助。