Thread Doppelte Elemente aus Array entfernen (11 answers)
Opened by pktm at 2007-11-11 14:12

renee
 2007-11-12 11:17
#102245 #102245
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my @array = (
    {a => 'b'},
    {1 => 2},
    {1 => 2},
);

my %seen;
my @unique = map{ $_->[0] }grep{ !$seen{$_->[1]}++ }map{ [$_,flatten($_)] }@array;
print Dumper \@unique;

sub flatten{
   my ($hashref) = @_;
   my $string = '';
   
   while( my ($key,$val) = each %$hashref ){
      $string .= $key . '_::_' . $val . '_::_';
   }

   return $string;
}


Wenn es noch tiefer verschachtelte Datenstrukturen sind, musst Du mit Rekursion und Fallunterscheidung (ARRAY, HASH,...) arbeiten.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Doppelte Elemente aus Array entfernen