0
숫자를 사용하여 컬렉션을 그룹화하려면 어떻게해야합니까? 그래서 숫자를 받아들이고 그 숫자를 사용하여 반환 된 콜렉션을 그룹화하는 메소드를 만들었습니다. 따라서 4를 전달하면 4로 그룹화됩니다. 다음은 데이터의 원래 구조입니다.Laravel, 개수로 컬렉션을 그룹화하는 방법
{
'A': [{
id: 1,
id: 2,
id: 3,
id: 4,
id: 5,
id: 6,
id: 7
}],
'B': [{
id: 1,
id: 2,
id: 3
}],
'C': [{
id: 1,
id: 2,
id: 3,
id: 4
}]
}
이제이 방법으로 데이터를 포맷해야합니다.
{
'A': [{
1: [{
id: 1,
id: 2,
id: 3,
id: 4
}],
2: [{
id: 5,
id: 6,
id: 7
}]
}],
'B': [{
1: {
id: 1,
id: 2,
id: 3
}
}],
'C': [{
1: [{
id: 1,
id: 2,
id: 3,
id: 4
}]
}]
}
여기 내 코드입니다.
public function getAllPlayers(num)
{
$data = Player::orderBy('familyName', 'asc')
->join('teams', 'players.primaryClubId', '=', 'teams.clubId')
->select(['players.*', 'teams.teamName', 'teams.teamNickname', 'teams.teamCode'])
->get()
->unique() //remove duplicates
->groupBy(function($item, $key) { //group familyName that starts in same letter
return substr($item['familyName'], 0, 1);
});
return $data;
}
저는 이것을 laravel에서 정말 힘들게 풀고 있습니다. 5.4 버전을 사용하여 Btw 메신저. 어떤 도움이라도 미리 감사드립니다.
현재의 입력과 결과 구조는 명확하지 않다. 우선 배열의 JSON 구조처럼 보이며 마지막 값이 값 ID를 덮어 씁니다. 문제가 해결 될 수 있도록 고유 한 값으로 더 나은 샘플을 제공하십시오. –