簡體   English   中英

如何在perl中的hash哈希中執行通用值的鍵合並

[英]how to perform merging of keys for common values in hash of hash in perl

我正在perl中的哈希散列下面工作,其中我在內部散列中具有一些對於不同鍵時間戳相同的值。 有什么辦法可以合並時間戳鍵以獲得相似的值?

'Test Responder Data String' => { 
                        '2018-01-26' => 'zzz00175002802;newData1',
                        '2018-01-20' => 'xxy00171329968;data1',
                        '2018-01-27' => 'xxy00171329968;data1',
                        '2018-01-28' => 'xxy00171329968;data1'
                        '2018-01-04' => 'www00171510082;ResponderData',
                        '2018-01-17' => 'rrr00175002256;try data',
                        '2018-01-05' => 'aaa00175033226;response try', 
                        '2018-01-08' => 'aaa00175033226;response try'
                       }

預期結果:

'Test Responder Data String' => { 
                        '2018-01-26'                       => 'zzz00175002802;newData1',
                        '2018-01-20,2018-01-27,2018-01-28' => 'xxy00171329968;data1',
                        '2018-01-04'                       => 'www00171510082;ResponderData',
                        '2018-01-17'                       => 'rrr00175002256;try data',
                        '2018-01-05,2018-01-08'            => 'aaa00175033226;response try'                                                                                 
                       }
my %h=(
    '2018-01-26' => 'zzz00175002802;newData1',
    '2018-01-20' => 'xxy00171329968;data1',
    '2018-01-27' => 'xxy00171329968;data1',
    '2018-01-28' => 'xxy00171329968;data1',
    '2018-01-04' => 'www00171510082;ResponderData',
    '2018-01-17' => 'rrr00175002256;try data',
    '2018-01-05' => 'aaa00175033226;response try', 
    '2018-01-08' => 'aaa00175033226;response try'
);
my %t;
push @{ $t{ $h{$_} } }, $_ for keys %h;

my %result = map { join(",", @{$t{$_}}) => $_ } keys %t;

use Data::Dumper; print Dumper \%result;

輸出

$VAR1 = {
      '2018-01-17' => 'rrr00175002256;try data',
      '2018-01-05,2018-01-08' => 'aaa00175033226;response try',
      '2018-01-26' => 'zzz00175002802;newData1',
      '2018-01-04' => 'www00171510082;ResponderData',
      '2018-01-27,2018-01-20,2018-01-28' => 'xxy00171329968;data1'
    };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM