webForumDet fria alternativet

Dubbelmappad Array

6 svar · 398 visningar · startad av M@rtin

M@rtinMedlem sedan dec. 19992 085 inlägg
#1

Jag har en array som ser ut såhär:

$cat = array("sverige"=>"Sverige","varlden"=>"Världen");

Men jag skulle även vilja att vanliga index fungerade, så att jag kan skriva $cat[0] och då få ut "Sverige". Hur löser man detta? Det måste ju gå eftersom man får sådana arrayer när man kör t.ex. mysql_fetch_array.

MatteMedlem sedan aug. 20002 975 inlägg
#2

När du hämtar med mysql_fetch_array() får du en array typ:

array(0=>'värde1', 'col1'=>'värde1', 1=>'värde2', 'col2'=>'värde2', 2=>'värde3', 'col3'=>'värde3')

Den innehåller alltså både numeriska och associativa index.
Arrayen blir alltså dubbelt så stor, vilket är en av anledningarna till att jag aldrig använder mysql_fetch_array().

Vill du göra om din array till dubbel-array bordet det gå att göra med

$array = array_merge(array_values($array), $array);
M@rtinMedlem sedan dec. 19992 085 inlägg
#3

Det funkade klockrent! Tack så mycket!

Men blir detta verkligen en dubbel array? Tar den dubbelt så mycket plats? Det borde ju finnas ett smartare sätt att lagra den? Typ (1=>"sverige"=>"Sverige") eller nåt. Annars ska jag också sluta använda mysql_fetch_array()

MatteMedlem sedan aug. 20002 975 inlägg
#4

Det blir en dubbelarray som tar dubbelt så stor plats.

Men när är det du behöver både numeriska och associativa index ?
Normalt sätt är det väl bara det ena du behöver.

M@rtinMedlem sedan dec. 19992 085 inlägg
#5

Okej.

Det är kategorier, dels vill jag ha enklare namn som funkar att ha i url'en och dessa måste jag då kunna översätta till vad de egentligen är. Sen ska man även kunna lagra vilka kategorier man vill se i en databas och då tänkte jag att det vore enklare att ha index.

MatteMedlem sedan aug. 20002 975 inlägg
#6

Jag förstår inte varför detta skulle göra att du behöver hämta både numeriska och associativa index, men det behöver vi å andra sidan inte heller fördjupa oss i :)

M@rtinMedlem sedan dec. 19992 085 inlägg
#7

Jag tänkte ha en lista med vilka kategorier man vill ha "1,4,6" typ. Men men jag inser nu att det var dumt, jag gör en lista med de förenklade namnen istället. Bra att du ifrågasatte! Men det kan vara bra att veta hur man gör dubbelarrayer ändå :)

125 ms totalt · 3 externa anrop · v20260731065814-full.1211964f
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)