Avatar billede xfox Nybegynder
17. juni 2008 - 11:06 Der er 5 kommentarer og
1 løsning

Multiarray funktion

Jeg skal have lavet en arrayfunktion.

Et array skal indeholde 2 rækker: 'id' og 'rv'(relevans).

Arrayet bliver fodret med id's. hvis id'et ikke findes i arrayet i forvejen, skal det tilføjes, og rv til id'et skal sættes til 0. Hvis id'et findes i arrayet, skal det tilhørende relevans forhøjes med 1. Lad os sige at id 14 med relevans 1 ligger i arrayet. Nu kommer id 14 igen, og rv skal forhøjes med 1, altså bliver rv 2 til id 14.

Til sidst skal der sorteres efter rv(højest først), og id'erne skal udskrives.

Er der en der kan trylle det ud af ærmet? :o)
Avatar billede coderdk Praktikant
17. juni 2008 - 18:50 #1
if ( array_key_exists( $id, $array ) )
{
  $array[$id]++;
}
else
{
  $array[$id] = 0;
}
Avatar billede coderdk Praktikant
17. juni 2008 - 18:51 #2
Ah og sorteres:

arsort( $array );

// Og skrives ud:
foreach ( $array as $id => $rv )
{
  echo "$id = $rv<br>";
}
Avatar billede coderdk Praktikant
17. juni 2008 - 18:53 #3
Og hvis sorteringen ikke ser rigtig ud, kan du prøve http://dk2.php.net/array_multisort
Avatar billede xfox Nybegynder
17. juni 2008 - 19:03 #4
Sweet! Og hvordan laver du så arrayet, med de id's der kommer fra min database til at starte med?
Avatar billede xfox Nybegynder
18. juni 2008 - 09:40 #5
Ahh, fandt jeg da selv ud af :D men ikke uden din hjælp :p

Vi er jo slet ikke ude i noget multiarray, det er jo ren barnemad, når først man ser hvordan det kan laves. Kommer du med et svar, så sender jeg nogle velfortjente points :o)
Avatar billede coderdk Praktikant
18. juni 2008 - 09:44 #6
ok :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester