PHP的行数和分裂成团

问题描述 投票:0回答:2

用户创建帐户,他们被分配到一组,组极限预先设定,假设5。

例如:第5个的用户已经保存到GROUP_ID = 1比如何让用户6已经保存到第二组?

UserGroups::insert([
    'user_id' => $user,
    'game_id' => $gameId,
    'group_id' => 1
]);

如何使这个充满活力的一些群体,如GROUP_ID = 3..4..5..6等?

示例代码:

$groupSize = 2;
$allUserGroups = 4;

if($groupSize < $allUserGroups) {
UserGroups::insert([
    'user_id' => $user,
    'game_id' => $gameId,
    'group_id' => 1
]);
} else {
    UserGroups::insert([
        'user_id' => $user,
        'game_id' => $gameId,
        'group_id' => 2
    ]);
}

如何使这个充满活力 - 这是只有两个组的工作?

多谢你们!

php laravel
2个回答
0
投票
<?php
$arrayUsers=['user1','user2','user3','user4','user5',
    'user6','user7','user8','user9','user10',
    'user11','user12','user13','user14','user15'];


$group_id=1;

echo'<pre>';
$groupedUser=array_chunk($arrayUsers, 5);

foreach($groupedUser as $data ){
    $newArray[$group_id]=$data ;
    $group_id++;
}

print_r($newArray);

因此,让我们假设你的用户是我创建在数组中。 array_chunk会在您需要的号码的组分割。当你在你的问题说,我分裂他们的5组,那么创建动态组我只是用一个计数器,我由一个每次我阵列场满(5个记录)递增。在输出你会得到一个多维数组与键GROUP_ID和值用户。

Array
(
    [1] => Array
        (
            [0] => user1
            [1] => user2
            [2] => user3
            [3] => user4
            [4] => user5
        )

    [2] => Array
        (
            [0] => user6
            [1] => user7
            [2] => user8
            [3] => user9
            [4] => user10
        )

    [3] => Array
        (
            [0] => user11
            [1] => user12
            [2] => user13
            [3] => user14
            [4] => user15
        )

)

0
投票

如果我理解你的问题,你正在寻找这种解决方案: -

$getgroups = UserGroups::select('group_id',DB::raw('count(group_id) as count'))->groupby('group_id')->get();
    $getgroups = json_decode(json_encode($getgroups),true);
    if(!empty($getgroups)){
        end($getgroups); 
        $key = key($getgroups);
        $group = $getgroups[$key];
        if($group['count'] <5){
            UserGroups::insert([
                'user_id' => $user,
                'game_id' => $gameId,
                'group_id' => $group['group_id']
            ]);
        }else{
            $groupvalue = $group['group_id'] +1;
            UserGroups::insert([
                'user_id' => $user,
                'game_id' => $gameId,
                'group_id' => $groupvalue
            ]);
        }
    }else{
        UserGroups::insert([
                'user_id' => $user,
                'game_id' => $gameId,
                'group_id' => 1
            ]);
    }
    echo "saved"; die;

我测试了它的工作完美。祝您的项目:)

© www.soinside.com 2019 - 2024. All rights reserved.