假设我有新的热门新闻。我想在视图中并排显示它们。当然,可能有更多的热门新闻,而不是新的新闻(例如在早上),反之亦然。这将导致柱子的长度不均匀。
这就是为什么我要建立两个阵列。一个是热门新闻,一个是新的。

$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循环来实现它,而无需使用sortarray_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

09-06 19:58