webForumDet fria alternativet

Dubbelmappad Array

PHP

6 svar · 398 visningar · startad av M@rtin

Medlem sedan dec. 19992 085 inlägg
Frågan#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.

Medlem 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);
Medlem 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()

Medlem 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.

Medlem 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.

Medlem 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 :)

Medlem 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å :)

141 ms totalt · 2 externa anrop · v20260731065814-full.2ae45ccc
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)