为医学研究创建一个网站,需要将用户随机但均匀地分成两组



我有这个问题,我试图弄清楚。起初,我想到仅通过用户ID的奇数和偶数来分隔用户。但我的客户说它需要比这更随机一点。

if($user_id % 2 == 0) {
        $u->add_role( 'control' );
    }else{
        $u->add_role( 'study' );
    }

用户需要被放入对照组和研究组,在 10 个中,每个组中需要 5 个,在 100 个、50 个等中。但它显然像 1 3 5 7 和 9 不能进入一个,而 2 4 6 8 10 进入另一个。它应该更像

1 3 5 6 7 合二为一2 4 8 9 10 进入另一个。

我很难弄清楚如何以可扩展的方式做到这一点

你为什么不列出所有用户。然后随机选择一个索引来选择用户,为其分配组,然后将其从列表中删除。只需随时交替组的类型即可。当列表为空时,您已分配所有用户。

最新更新