in reply to Re: How to merge two arrays within the hash of arrays based on unique name.
in thread How to merge two arrays within the hash of arrays based on unique name.
use strict; use warnings; use Data::Dump qw/pp dd/; my @sorted_data = ( { 'count_payment' => '', 'count_banking' => '31 (62.00)', 'name' => 'Parking Eye [LTD] One', }, { 'count_payment' => '10 (144.00)', 'count_banking' => '', 'name' => 'Parking Eye [LTD] Two', }, { 'count_payment' => '2 (80.42)', 'count_banking' => '', 'name' => 'Parking Eye [LTD] Three', }, { 'count_payment' => '', 'count_banking' => '4 (982.00)', 'name' => 'Parking Eye [LTD] Two', } ); my %tmp; my $order = 0; for my $record (@sorted_data) { my $target = \ $tmp{$record->{name}}; $$target->{name} = $record->{name}; $$target->{_order} //= $order++; for (qw/count_banking count_payment/){ $$target->{$_} .= $record->{$_}; } } my @new_sorted_data = sort { $a->{_order} <=> $b->{_order} } values %tmp; delete $_->{_order} for @new_sorted_data; pp \@new_sorted_data;
-*- mode: compilation; default-directory: "d:/exp/" -*- Compilation started at Tue Jul 14 11:51:06 C:/Perl_524/bin\perl.exe -w d:/exp/pm_hash_join.pl [ { count_banking => "31 (62.00)", count_payment => "", name => "Parking Eye [LTD] One", }, { count_banking => "4 (982.00)", count_payment => "10 (144.00)", name => "Parking Eye [LTD] Two", }, { count_banking => "", count_payment => "2 (80.42)", name => "Parking Eye [LTD] Three", }, ] Compilation finished at Tue Jul 14 11:51:07
Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: How to merge two arrays within the hash of arrays based on unique name.
by Sami_R (Sexton) on Jul 16, 2020 at 18:38 UTC | |
by LanX (Saint) on Jul 16, 2020 at 18:51 UTC | |
by LanX (Saint) on Jul 16, 2020 at 21:36 UTC | |
by Sami_R (Sexton) on Jul 17, 2020 at 10:25 UTC | |
by LanX (Saint) on Jul 17, 2020 at 13:17 UTC | |
|
Re^3: How to merge two arrays within the hash of arrays based on unique name.
by Sami_R (Sexton) on Jul 14, 2020 at 09:55 UTC |