如何实现组合两个项目列表的棋盘图案



我有用户和帖子,我希望在网页上以棋盘图案显示它们,如下所示(其中P是Post,U是用户):

P - U -

P - U

U - P -

U - P

P - U -

P - U

U - P -

U - P

无论哪一项是第 4 行,都将重复为下一行的第 1 项。

我将首先获得所有帖子的列表,以及所有用户的列表。然后,我将将它们合并到一个更大的列表中,并应用排序。

我已经用PHP编写了这个,但是我当前的代码只是轮流像这样进行P U P U:

P - U -

P - U

P - U -

P - U

P - U -

P - U

P - U -

P - U

这是我的代码:

    $posts = Post::all()
    $users = User::all()
    $tiles = collect();
    foreach ($posts as $post) {
        $tiles->push($post);
        if ($users) {
            $tiles->push($users->pop());
        }
    }

我正在寻找一种有效的方法来获取棋盘图案,我一直在尝试使用计数器并在计数器%4 == 0时一次添加两个帖子或用户,但没有任何结论。

抱歉我看不懂 php...但从逻辑上讲,您需要在偶数行的"发布"之前推送"用户"。所以伪代码会像这样:

if (lineno % 2 == 0) {
  push user; push post;}
else {
  push post; push user;}

最新更新