ハッシュのリストを取り、任意の数のフィールドの内容に基づいてネストされたリストを作成できるサブを作成しようとしています。再帰のセットアップを正しく取得できません。データベースから大量のバグ データを取得しており、フィールドの任意のリスト (チーム、優先度など) でデータをグループ化したいと考えています。十分に近づいていると思うサンプルコードは本当にありません
以下の例
次の DS があります。
$ds =
[
{
foo => 'A',
bar => 'B',
baz => 'C',
},
{
foo => 'A',
bar => 'B',
baz => 'F',
},
{
foo => 'A',
bar => 'D',
baz => 'G',
},
{
foo => 'R',
bar => 'J',
baz => 'G',
}
]
次の関数呼び出しが与えられた場合
# prototype groupBy(data, field-1,field-2,field-n)
groupBy($ds,'foo','bar');
次の出力が欲しい
$res = {
A => {
B => [
{
foo => 'A',
bar => 'B',
baz => 'C',
},
{
foo => 'A',
bar => 'B',
baz => 'F',
}
],
D => [
{
foo => 'A',
bar => 'D',
baz => 'G',
}
],
},
R => {
J => [
{
foo => 'R',
bar => 'J',
baz => 'G',
}
}
};