Schrift
[thread]10771[/thread]

Doppelte Elemente aus Array entfernen (Seite 2)

Leser: 4


<< |< 1 2 >| >> 12 Einträge, 2 Seiten
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/
pq
 2007-11-12 14:35
#102254 #102254
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
weiss nicht, aber da wuerde ich Data::Dumper fuer verwenden, als mir was eigenes zu stricken,
oder JSON. mit $Data::Dumper::Sortkey = 1 ist ja der output von gleichen hashes
auch immer der gleiche string. bei einer eigens gebastelten funktion muss man halt sicher
sein, dass die trenner nicht in den daten vorkommen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2007-11-11 14:12.