09. november 2003 - 22:30Der er
13 kommentarer og 1 løsning
Associativt eller numerisk array
Når man henter nogle data ud af databasetabel, kan man med funktionen mysql_fetch_array() få genereret et array. Dette er mig bekendt både associativt og numerisk. Altså man kan både få udskrevet dataene ved at skrive; echo $arraynavn[1] og ved at skrive echo $arraynavn[feltnavn].
Jeg bruger imidlertid en foreach-løkke, da jeg gerne vil have udskrevet både arrayets nøgler og værdi. Det gør jeg således:
while($my_array = mysql_fetch_array($my_result)){
foreach($my_array as $key => $value){
echo "\n<b>$key:</b> $value<br>";
}
}
Men her opfattes arrayet som et numerisk array, og de nøgler jeg får udskrevet er således 1, 2, 3 osv. Hvad skal jeg gøre for at det opfattes som en et associativt array og mine nøgler dermed i stedet bliver databasefelternes navne?
Efter ti år i London, Madrid, Paris og Utrecht kommer Sabios AI-fokuserede program af arrangementer om kundeoplevelser, ‘Disrupt’, for første gang til Danmark.
Nej Undskyld, det er ikke rigtigt hvad jeg har skrevet. Nøglerne udskrives ikke kun som 1, 2, 3 osv. Derimod skrives alle "poster" 2 gange, en gang hvor den numeriske nøgle vises, efterfulgt af værdien, og en gang hvor den associative nøgle vises efterfulgt af værdien. Det jeg ønsker er at kun den associative vises, ikke den numeriske!
rackbox >> Som du måske kan se, skrev du dit svar så sent at jeg ikke nåede at tage det med i betragning. Men også tak til dig selvfølgelig! Men på hvilken måde er dit mere skalerbart end ericjacobsens?
Det var ikke for at tiltuske mig points.. Blot for at gøre din kode mere overskuelig og "korrekt".. Med min funktion får du mulighed for på sigt at skrive eks. while ($row = mysql_fetch_array($result, MYSQL_NUM)){ ... } eller while ($row = mysql_fetch_array($result, MYSQL_BOTH)){ ... }
for at få en anden repræsentation.. Dette kan endda styres med en variabel.
Det er altid bedre at lade det rigtige program håndtere det, det er bedst til. I dette tilfælde findes der en funktion til at returnere et associativt array ved at sætte en option. I virkeligheden anbefales det af PHP at bruge mysql_fetch_array($result, MYSQL_ASSOC) fremfor mysql_fetch_assoc($result), idet sidstnævnte er udledt af førstnævnte og ikke omvendt.. Men bare det virker for dig, så er vores opgave jo udført med success ;-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.