假设我有新的热门新闻。我想在视图中并排显示它们。当然,可能有更多的热门新闻,而不是新的新闻(例如在早上),反之亦然。这将导致柱子的长度不均匀。
这就是为什么我要建立两个阵列。一个是热门新闻,一个是新的。
$hot = array(
'hotObj 1',
'hotObj 2',
'hotObj 3',
'hotObj 4',
);
$new = array(
'newObj 1',
'newObj 2',
);
因此,我想要的是:
$hot = array(
'hotObj 1',
'newObj 1',
'hotObj 2',
'newObj 2',
'hotObj 3',
'hotObj 4',
);
我怎样才能做到这一点?哪一个数组长并不重要。
array_merge()将第二个数组放在末尾,这不是我想要的。
最佳答案
您可以简单地使用for
循环来实现它,而无需使用sort
或array_merge
函数,如
$count = (count($hot) > count($new)) ? count($hot) : count($new);
$result = [];
for($i= 0; $i < $count;$i++){
if(isset($hot[$i])){
$result[] = $hot[$i];
}
if(isset($new[$i])){
$result[] = $new[$i];
}
}
print_r($result);
输出:
Array
(
[0] => hotObj 1
[1] => newObj 1
[2] => hotObj 2
[3] => newObj 2
[4] => hotObj 3
[5] => hotObj 4
)
Demo