19. september 2005 - 09:17
Der er
6 kommentarer og 1 løsning
Array og hash (2)
$hash{'a'}='a1'; $hash{'b'}='b1'; $array[0] = \%hash; $hash{'a'}='a2'; $hash{'b'}='b2'; $array[1] = \%hash; Den virker ikke. Findes der en løsning, hvor man siger at %hash skal referencere til en anden (ny) adresse? med venlig hilsen KernelX
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
19. september 2005 - 09:22
#1
I din kode er %hash (doh) en hash og $array[0] og $array[1] peger begge to på den samme %hash. Der er altså ikek %hash selv som peger på en adresse. Hvad mener du præcist med at "%hash skal referencere til en anden (ny) adresse?"? Hvad er det for en effekt du gerne vil opnå?
19. september 2005 - 09:39
#2
mit problem er, at %hash hele tiden har den samme adresse. Der bliver lavet en DB-connection - og hver gang den for fat i en nye værdier i en while-sløjfe, skal de in i et array, sådan at arrayet refererer til hashen med værdierne. --- while (ny row) { $hash{'col1'} = $col1; $hash{'col2'} = $col2; $array[$arrayIndex] = \%hash; $arrayIndex++; } --- som man kan se, peger referencen hele tiden på det samme sted. jeg vil på en eller anden måde sørge for, at # %hash har adresse 1 $hash{'a'}='a1'; $hash{'b'}='b1'; og # %hash har adresse 2 $hash{'a'}='a2'; $hash{'b'}='b2'; --- for at komme tilbage til eksemplet: ---- $hash{'a'}='a1'; $hash{'b'}='b1'; $array[0] = \%hash; # delete %hash # ny %hash med ny adresse $hash{'a'}='a2'; $hash{'b'}='b2'; $array[1] = \%hash; --- sorry, jeg er måske ikke så god til at forklare, hvad jeg vil ud på. Men jeg giver mit bedste :-)
19. september 2005 - 09:47
#3
Så vidt jeg kan forstå så ønsker du at gemme referencen til værdierne fra databasen i dit array efterhånden som du henter dem? Det burde denne kode kunne gøre: while ($hash = $result->fetchrow_hashref) { $array[$arrayIndex] = $hash; $arrayIndex++; } - (så har du referencerne i dit array), eller denne: while ($hash = $result->fetchrow_hashref) { $array[$arrayIndex] = %$hash; $arrayIndex++; } - (så har du selve hashen i dit array.)
19. september 2005 - 09:50
#4
jeg har fundet en løsning uden referencer. --- $hash{'a'}='a1'; $hash{'b'}='b1'; $array[0] = {%hash}; $hash{'a'}='a2'; $hash{'b'}='b2'; $array[1] = {%hash}; ---
19. september 2005 - 09:51
#5
nielle - du glemte at skrive svar :-)
19. september 2005 - 10:01
#6
pga. points
19. september 2005 - 10:03
#7
Svar :^)
Kurser inden for grundlæggende programmering