Schrift
[thread]7691[/thread]

groesser der n-ten dimension eines arrays

Leser: 1


<< >> 4 Einträge, 1 Seite
jmb
 2006-02-09 18:23
#62800 #62800
User since
2006-02-08
30 Artikel
BenutzerIn
[default_avatar]
Hi,

hat jmd eine Ahnung wie ich die groesste der n-ten dimension eines array&acute;s herausfinden, wenn ich die array-dimensionen nicht durch push zusammengefuegt habe, sondern durch z.b. sowas hier:

Code: (dl )
1
2
my @whatever;
$whatever[$i][$j] = $sth;


braeuchte jetzt die groesse des - in diesem fall - zweiten arrays (wieviele $j sind in der demension $i).

noch schoener bei einer dritten dimension

ueber eure hilfe freut sich

jmb
murphy
 2006-02-09 19:28
#62801 #62801
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Code: (dl )
scalar(@{$whatever[$i]})
sollte das gewünschte Ergebnis liefern.
When C++ is your hammer, every problem looks like your thumb.
Taulmarill
 2006-02-09 19:33
#62802 #62802
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
also, erst einmal sei gesagt, dass es in Perl keine n-dimensionalen arrays gibt, sondern nur arrays mit referenzen auf weitere arrays. das ist deshlab wichtig, da die eine referenz auf ein array mit fünf, die anedere aber auf ein array mit sechs einträgen verweisen kann. man kann auch einen einfachen scalaren wert oder eine referenz auf einen hash dazwischen haben. aber nehmen wir mal an du hast alles gleich aufgebaut:

erst mal für normale arrays, das ist relativ einfach:
Code: (dl )
1
2
scalar( @array ); # anzahl der felder eines arrays
$#array; # index des letzten eintrags des arrays


bei "mehrdimensionalen" arrays, nimmst du jetzt die referenz, die dich interessiert, und dereferenzierst diese, indem du geschweifte klammern benutzt
Code: (dl )
1
2
scalar( @{ $array[0] } ); # anzahl der felder eines arrays
$#{ $array[0] }; # index des letzten eintrags des arrays


ich hoffe das war einigermassen verständlich...
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
jmb
 2006-02-09 20:27
#62803 #62803
User since
2006-02-08
30 Artikel
BenutzerIn
[default_avatar]
n&acute;abend,

vielen dank fuer info und code an euch. hat geklappt, und was wichtiger ist, habs verstanden

cheers
jmb
<< >> 4 Einträge, 1 Seite



View all threads created 2006-02-09 18:23.