$groups = [];
foreach($data as $user)
{
$userGroupId = $user['GroupId'];
$exists = false;
foreach($groups as $group)
{
$groupId = $group['GroupId'];
if ($groupId == $userGroupId)
{
$users = $group['users'];
$currentUser = array(
'UserId'=>$user['UserId'],
'UserName'=>$user['UserName'],
'Surname'=>$user['Surname']
);
array_push($users, $currentUser);
$exists = true;
break;
}
}
if (!$exists)
{
$addGroup = array(
'GroupId'=>$user['GroupId'],
'GroupName'=>$user['GroupName'],
'users'=>[array(
'UserId'=>$user['UserId'],
'UserName'=>$user['UserName'],
'Surname'=>$user['Surname']
)]
);
array_push($groups, $addGroup);
}
}
Итак, у меня есть пустой массив с именем groups.
Исходные данные - это массив различных пользователей, включая группу, в которой они находятся, и я пытаюсь отсортировать их по массиву групп с массивом пользователей внутри.
Все работает нормально, кроме случаев, когда я пытаюсь отправить текущего пользователя в массив users.
При отладке я напечатал массив после нажатия, и он выдался нормально, но когда дело доходит до следующего пользователя, предыдущие пользователи ушли. Так что его подтолкнули, но потом сняли.