Thread Ein Katalog-System: Titel und Untertitel (15 answers)
Opened by Gast at 2004-04-18 16:40

renee
 2004-04-19 10:21
#81661 #81661
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mit diesem Code:
Code: (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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#! /usr/bin/perl

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

my $categories = [
['Telekommunikation',
['Festnetz',
['Telefon',
['Foo', 'Bar']
],
['Telefax',
['Foo', 'Bar']
],
],
['Mobilnetz',
['Handy used',
['Siemens',
['C25', 'C35', 'Other']
],
['Nokia',
['5130', '7710', '8810', 'Other']
],
['Panasonic',
['GD90', 'GD91', 'GD92']
]
],
['Handy unused',
['Panasonic',
['GD90', 'GD91', 'GD92']
],
['Siemens',
['C25', 'C35', 'Other']
],
['Nokia',
['5130', '7710', '8810', 'Other']
]
]
]
],
];

my $hashref = getPosition($categories,"","");

print Dumper($hashref);

sub getPosition{
my ($arrayref,$title,$position) = @_;
my @array = @{$arrayref};
my %hash = ();
my $ref2hash = ();
foreach my $index(0..(scalar(@array) - 1)){
my $type = ref($array[$index]);
if($type eq 'ARRAY'){
$position .= '_'.$index;
$ref2hash = getPosition($array[$index],$title,$position);
%hash = (%hash,%{$ref2hash});
}# elsif
unless($type){
$title = $title.'_'.$array[$index];
my $pos = $position.'_'.$index;
$title =~ s/^_//;
$pos =~ s/^_//;
$hash{$title} = $pos;
}# if
}# foreach
return \%hash;
}# end getPosition
bekomme ich das hier raus:
Quote
$VAR1 = {
'Telekommunikation_Mobilnetz_Handy unused_Siemens_C25_C35_Other' => '0_1_2_1_2_1_2_1_2',
'Telekommunikation_Mobilnetz_Handy unused' => '0_1_2_1_2_0',
'Telekommunikation_Mobilnetz_Handy unused_Siemens_C25_C35' => '0_1_2_1_2_1_2_1_1',
'Telekommunikation_Mobilnetz_Handy used_Siemens' => '0_1_2_1_1_0',
'Telekommunikation_Festnetz_Telefax_Foo' => '0_1_1_2_1_0',
'Telekommunikation_Mobilnetz_Handy unused_Nokia' => '0_1_2_1_2_1_2_3_0',
'Telekommunikation' => '0_0',
'Telekommunikation_Mobilnetz_Handy used' => '0_1_2_1_0',
'Telekommunikation_Mobilnetz' => '0_1_2_0',
'Telekommunikation_Mobilnetz_Handy unused_Nokia_5130_7710_8810' => '0_1_2_1_2_1_2_3_1_2',
'Telekommunikation_Mobilnetz_Handy used_Nokia_5130_7710_8810_Other' => '0_1_2_1_1_2_1_3',
'Telekommunikation_Mobilnetz_Handy unused_Nokia_5130_7710' => '0_1_2_1_2_1_2_3_1_1',
'Telekommunikation_Festnetz_Telefax' => '0_1_1_2_0',
'Telekommunikation_Festnetz_Telefax_Foo_Bar' => '0_1_1_2_1_1',
'Telekommunikation_Mobilnetz_Handy used_Nokia' => '0_1_2_1_1_2_0',
'Telekommunikation_Mobilnetz_Handy unused_Panasonic_GD90_GD91_GD92' => '0_1_2_1_2_1_1_2',
'Telekommunikation_Mobilnetz_Handy used_Panasonic_GD90' => '0_1_2_1_1_2_3_1_0',
'Telekommunikation_Mobilnetz_Handy unused_Panasonic_GD90_GD91' => '0_1_2_1_2_1_1_1',
'Telekommunikation_Mobilnetz_Handy unused_Siemens_C25' => '0_1_2_1_2_1_2_1_0',
'Telekommunikation_Mobilnetz_Handy used_Siemens_C25_C35' => '0_1_2_1_1_1_1',
'Telekommunikation_Festnetz_Telefon_Foo_Bar' => '0_1_1_1_1',
'Telekommunikation_Mobilnetz_Handy used_Panasonic_GD90_GD91' => '0_1_2_1_1_2_3_1_1',
'Telekommunikation_Mobilnetz_Handy unused_Panasonic_GD90' => '0_1_2_1_2_1_1_0',
'Telekommunikation_Mobilnetz_Handy used_Nokia_5130_7710_8810' => '0_1_2_1_1_2_1_2',
'Telekommunikation_Mobilnetz_Handy used_Nokia_5130_7710' => '0_1_2_1_1_2_1_1',
'Telekommunikation_Mobilnetz_Handy used_Panasonic' => '0_1_2_1_1_2_3_0',
'Telekommunikation_Festnetz' => '0_1_0',
'Telekommunikation_Mobilnetz_Handy unused_Nokia_5130' => '0_1_2_1_2_1_2_3_1_0',
'Telekommunikation_Mobilnetz_Handy used_Siemens_C25_C35_Other' => '0_1_2_1_1_1_2',
'Telekommunikation_Festnetz_Telefon' => '0_1_1_0',
'Telekommunikation_Mobilnetz_Handy used_Nokia_5130' => '0_1_2_1_1_2_1_0',
'Telekommunikation_Mobilnetz_Handy used_Siemens_C25' => '0_1_2_1_1_1_0',
'Telekommunikation_Mobilnetz_Handy unused_Siemens' => '0_1_2_1_2_1_2_0',
'Telekommunikation_Mobilnetz_Handy unused_Nokia_5130_7710_8810_Other' => '0_1_2_1_2_1_2_3_1_3',
'Telekommunikation_Mobilnetz_Handy used_Panasonic_GD90_GD91_GD92' => '0_1_2_1_1_2_3_1_2',
'Telekommunikation_Festnetz_Telefon_Foo' => '0_1_1_1_0',
'Telekommunikation_Mobilnetz_Handy unused_Panasonic' => '0_1_2_1_2_1_0'
};


Die einzelnen Ebenen sind mit _ getrennt. Eine Position 3_5 sagt also aus, dass das gesuchte Teil im dritten Element der ersten Ebene und im fünften Element der 2. Ebene liegt...
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 Ein Katalog-System: Titel und Untertitel