Thread aus Liste den Text von IDs zum string (6 answers)
Opened by Gustl at 2019-12-21 13:03

Gustl
 2019-12-21 13:03
#191005 #191005
User since
2011-01-27
441 Artikel
BenutzerIn
[Homepage]
user image
Hallo zusammen,

folgende Anforderung:

Ich habe eine Liste aus einer DB die wie folgt aussieht:
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
[
{
"list": "optionsLastschrift",
"text": "- Bitte auswählen -",
"value": 0
},
{
"list": "optionsMemberRolle",
"text": "1. Vorstand",
"value": 1
},
{
"text": "2. Vorstand",
"list": "optionsMemberRolle",
"value": 2
},
{
"text": "Abbuchungsauftrag",
"list": "optionsLastschrift",
"value": 2
},
{
"text": "Aktiv",
"list": "optionsMemberStatus",
"value": 1
},
{
"list": "optionsLastschrift",
"text": "Einzugsermächtigung",
"value": 1
},
{
"value": 7,
"list": "optionsMemberRolle",
"text": "Fußball - Spielleiter"
},
{
"value": 5,
"list": "optionsMemberRolle",
"text": "Fußballspieler"
},
{
"text": "Fußballtrainier",
"list": "optionsMemberRolle",
"value": 6
},
{
"value": 11,
"text": "Gymnastik",
"list": "optionsMemberRolle"
},
{
"list": "optionsMemberRolle",
"text": "Hausmeister",
"value": 12
},
{
"value": 3,
"text": "Inaktiv - nicht zahlend",
"list": "optionsMemberStatus"
},
{
"value": 2,
"list": "optionsMemberStatus",
"text": "Inaktiv - zahlend"
},
{
"value": 3,
"text": "Kassier",
"list": "optionsMemberRolle"
},
{
"text": "männlich",
"list": "optionsGeschlecht",
"value": 1
},
{
"list": "optionsMemberRolle",
"text": "Schriftführer",
"value": 4
},
{
"text": "Tennisspieler",
"list": "optionsMemberRolle",
"value": 8
},
{
"value": 9,
"list": "optionsMemberRolle",
"text": "Tennistrainer"
},
{
"text": "transgender",
"list": "optionsGeschlecht",
"value": 3
},
{
"value": 4,
"list": "optionsMemberStatus",
"text": "Verstorben"
},
{
"value": 10,
"text": "Volleyballspieler",
"list": "optionsMemberRolle"
},
{
"list": "optionsMemberRolle",
"text": "Webmaster",
"value": 13
},
{
"text": "weiblich",
"list": "optionsGeschlecht",
"value": 2
}
]


Da drin sind Auswahllisten.
Jetzt habe ich zu einer Person verschiedene Rollen (optionsMemberRolle) in der DB gespeichert.

Beispiel: rolleIds: [3,10]

Ich möchte jetzt einen string aus dieser Liste, in Abhängigkeit von den RolleIds Array.
Raus kommen soll in diesem Beispiel folgendes: "Kassier, Volleyballspieler"

Hier der Aufruf der Sub: getStringChoose( \@chooseList, \@rolleIds, 'optionsMemberRolle')

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
sub getStringChoose{
  my $chooseList = shift; 
  my $ids        = shift;
  my $list       = shift;

  my @listvalues;
  foreach( @{$ids} ){
    my $id = $_;
    my @exists = grep ($_->{list} eq $list && $_->{value} == $id, @{$chooseList});
    push( @listvalues, @exists);
  }
   
  my @arrayJoin;
  foreach(@listvalues){
    push( @arrayJoin, $_->{text} );

  } 
  return (scalar(@listvalues) > 0) ? join(", ",@arrayJoin) : " - ";
}


Es funktioniert schon. Aber es geht doch bestimmt viel einfacher und kürzer oder?

Gruß

View full thread aus Liste den Text von IDs zum string