Schrift
[thread]7774[/thread]

Anzahl von Zeilen und Spalten eines 2 Dim. Arrays



<< >> 9 Einträge, 1 Seite
Gast Gast
 2006-03-09 10:25
#63626 #63626
Hallo,

gleich nochmal eine Frage! Wie kann ich die Anzahl der Zeilen und Spalten eines 2 Dim. Arrays bestimmen?

Anzahl Zeilen: $zeilen = @array;

Aber wie gehts mit den Spalten?

Vielen Dank
dominicn
 2006-03-09 10:35
#63627 #63627
User since
2003-08-08
327 Artikel
BenutzerIn
[default_avatar]
Da zweidimensionale Arrays eigentlich Arrays von Referenzen auf Arrays sind, musst du das selbst implementieren:

Code: (dl )
my $spaltenzahl = @{$array[0]}

... wenn du davon ausgehst, dass alle Zeilen die gleiche Spaltenzahl haben. Sicherer wäre es dann so:
Code: (dl )
1
2
3
4
5
6
my $spaltenzahl = 0;
foreach my $zeile (@array) {
if (scalar @$zeile > $spaltenzahl) {
$spaltenzahl = @$zeile;
}
}


ungetestet!
flotschi1981
 2006-03-09 10:49
#63628 #63628
User since
2006-03-09
4 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hi,

leider haben sie nicht immer die selbe Spaltenanzahl!

Danke für die Hilfe!

Flo
Bestes Innenraum Fahrradträgersystem und Fahrradhaltersystem http://www.radfazz.de
flotschi1981
 2006-03-09 11:54
#63629 #63629
User since
2006-03-09
4 Artikel
BenutzerIn
[Homepage] [default_avatar]
Nochmals kurz eine Frage zu 2 Dim. Array!

Kann ich irgendwie den kompletten Inhalt eines Array einem 2 Dim. Array zuordnen!

z.B.

$array2dim[][] = @array;

ohne das ich immer eine Schleife laufen lassen muss. So:

@array2 = @array;

Vielen Dank nochmals!
Bestes Innenraum Fahrradträgersystem und Fahrradhaltersystem http://www.radfazz.de
dominicn
 2006-03-09 12:07
#63630 #63630
User since
2003-08-08
327 Artikel
BenutzerIn
[default_avatar]
Wie meinst du das? Du willst du Inhalt eines eindimensionalen Arrays einem zweidimensionalen Array zuordnen? Oder einer Zeile zuordnen? Für das Verständnis ist es meiner Ansicht nach wichtig, zu verstehen, dass es mehrdimensionale Arrays nicht eingebaut gibt, sondern dass dies eben über Referenzen organisiert wird ... mit allen Vor- und Nachteilen.
flotschi1981
 2006-03-09 12:09
#63631 #63631
User since
2006-03-09
4 Artikel
BenutzerIn
[Homepage] [default_avatar]
Achso ok. Also gebe ich nur die Referenz rein oder?

Den gesamten Inhalt von Array möchte ich in eine Spalte von dem 2 Dim. Array geben!
Bestes Innenraum Fahrradträgersystem und Fahrradhaltersystem http://www.radfazz.de
renee
 2006-03-09 12:14
#63632 #63632
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du es einer Spalte zuordnen willst (also immer der 2. Dimension) kommst Du um eine Schleife nicht drumrum:
Code: (dl )
1
2
3
for(0..scalar(@array)-1){
$array2dim[$_]->[$spalte] = $array[$_];
}


wenn Du es einer Zeile zuordnen willst, dann so:
Code: (dl )
$array2dim[$zeile] = [@array];
\n\n

<!--EDIT|renee|1141899673-->
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/
dominicn
 2006-03-09 12:17
#63633 #63633
User since
2003-08-08
327 Artikel
BenutzerIn
[default_avatar]
Das kannst du meines Wissens nicht in einem Schritt machen.

Code: (dl )
1
2
3
4
5
6
7
#@zarray ist der schon vorhandene 2dim. Array
#@sarray enthält die neue Spalte
#$snr ist die Nr. der Spalte, in die die Daten aus @sarray eingefügt werden sollen

for (my $i=0;$i<=$#sarray;$i++) {
${$zarray[$i]}[$snr] = $sarray[$i];
}

Da entstehen dann aber wieder Probleme, wenn die Zeilenzahl in @zarray nicht der Zahl der Elemente in @sarray entspricht.
flotschi1981
 2006-03-09 12:26
#63634 #63634
User since
2006-03-09
4 Artikel
BenutzerIn
[Homepage] [default_avatar]
Mersi nummoi! Gäd sau guad.....
Bestes Innenraum Fahrradträgersystem und Fahrradhaltersystem http://www.radfazz.de
<< >> 9 Einträge, 1 Seite



View all threads created 2006-03-09 10:25.