Arrays Perl动态多维数组
在我的Perl程序中,我用于测试以下静态数组定义:Arrays Perl动态多维数组,arrays,perl,hash,multidimensional-array,Arrays,Perl,Hash,Multidimensional Array,在我的Perl程序中,我用于测试以下静态数组定义: my %data = ( 56 => [ { 'Titel' => 'Test 1', 'Subtitel' => 'Untertest 1', 'Beginn' => '00:05', 'Ende' => '00:50' }, { 'Titel' =>
my %data = (
56 => [
{ 'Titel' => 'Test 1',
'Subtitel' => 'Untertest 1',
'Beginn' => '00:05',
'Ende' => '00:50'
},
{ 'Titel' => 'Test 2',
'Subtitel' => 'Untertest 2',
'Beginn' => '00:50',
'Ende' => '01:40'
}
],
58 => [
{ 'Titel' => 'Test 3',
'Subtitel' => 'Untertest 3',
'Beginn' => '00:10',
'Ende' => '01:50'
}
],
51 => [
{ 'Titel' => 'Test 4',
'Subtitel' => 'Untertest 4',
'Beginn' => '00:05',
'Ende' => '00:20'
},
{ 'Titel' => 'Test 5',
'Subtitel' => 'Untertest 5',
'Beginn' => '00:20',
'Ende' => '00:40'
},
{ 'Titel' => 'Test 6',
'Subtitel' => 'Untertest 6',
'Beginn' => '00:40',
'Ende' => '01:05'
}
],
);
现在我想改变它,从数据库中获取数据。我的select返回5个值:在我的示例中是一个像56、58或51这样的id,以及每个滴度、子滴度、Beginn和Ende的值
如何构建与静态示例中相同的数组构造
提前谢谢!顺致敬意,
Daniel假设您希望在最后使用它,则需要将hashref推入存储在$data{$id}的arrayref中:
push @{ $data{$id} }, {
Titel => $titel,
Subtitel => $subtitel,
Beginn => $beginn,
Ende => $ende,
};
可能是这样的。对不起,我已经有一段时间没有做perl了
#!/usr/bin/perl
use Data::Dumper;
sub dataset2struc {
my $result = {};
foreach my $row (@_) {
my $id = $row->{'id'};
my $recref = $result->{$id} || ();
my @rec = @{$recref};
delete $row->{'id'};
push(\@rec, $row);
$result->{$id} = \@rec;
}
return $result;
}
my @dataset = ({"id" => 1, "a" => "b"}, {"id" => 2, "a" => "c"}, {"id" => 2, "a" => "d"});
print Dumper(dataset2struc(@dataset));
你可以用几种方法来做。你已经试过做什么了?