我有一个新闻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语句以便内容混合?
答案 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]];
}