Foreach声明在演示文稿中混合内容类型

时间:2015-10-28 12:08:11

标签: php arrays foreach news-feed

我有一个新闻Feed,我希望显示混合内容,其中包含三种不同类型的项目。可以说这些是博客文章(类型1),广告(类型2)和文章(类型3)。

我为每个项目类型提取数据,这是一个包含有关项目的不同数据的数组(例如作者,文本,日期等)。

所以我有array1,array2,array3。

我想知道如何在foreach语句中混合三个,以便它们以混合顺序显示,即type1,type2,type3再次显示,而不是显示类型1中的所有项目然后所有项目从类型2等。

我做了:

$contentArray = array(

    0 => $array1,
    1 => $array2,
    2 => $array3
);
foreach($contentArray  as $itemType){
if($itemType == $array1){
//display template 1
}elseif($itemType == $array2)
//display template 2
}else{
//display template 2
}

然而,它首先显示所有array1,然后显示array2,依此类推。

如何构造foreach语句以便内容混合?

2 个答案:

答案 0 :(得分:0)

当迭代一个数组时,有一个索引 - 所以假设数组的索引从数组到数组对应,那么你可以尝试以下几行: -

<?php
    foreach( $array1 as $index => $value ){
        echo $value .' '.$array2[ $index ]. ' '. $array3[ $index ];
    }
?>

答案 1 :(得分:0)

如果您想要随机值,可以尝试以下代码:

$array1 =  array('1' => 'item1' , '2' => 'item2', '3' => 'item3');
$array2 =  array('1' => 'item1' , '2' => 'item2', '3' => 'item3');
$array3 =  array('1' => 'item1' , '2' => 'item2', '3' => 'item3');

foreach( $array1 as $index => $value ){
         $a = array(1,2,3);
         shuffle($a);
         echo $array1[$a[0]].' '.$array2[$a[1]].' '.$array3[$a[2]];
}
相关问题