Avatar billede pblv Nybegynder
02. april 2004 - 13:02 Der er 1 kommentar og
1 løsning

Spøjs lille sorterings fejl

Heysa.

Jeg har et multi-array, som jeg har sorteret en gang. Efter at have arbejdet på det, sorterer jeg det så igen med:

reset($array);

foreach ($array as $key => $row)
{
  $klubnavn[$key] = $row["klubnavn"];
}

array_multisort($klubnavn, SORT_ASC, $array);

Det virker sådan set også Ok. På nær første gang jeg kører en løkke der udskriver!

for ($i=0; $i < $antalspiller; $i++)
{
    $array[$i][navn]
}

Første navn der kommer ud, er stadigt fra den "gamle sortering", imens de efterfølgende navne der kommer er sorteret som de skal.

Nogen der ved hvad der er galt?

Mvh
Pierre
Avatar billede jakoba Nybegynder
03. april 2004 - 10:45 #1
din  reset($array);  er overflødig.  foreach sætningen sørger selv for at dit array er resat. se: http://dk.php.net/manual/en/control-structures.foreach.php

udover det ser det altsammen rigtigt ud. Er du sikker på at du ikke kaver en fejl der du udskriver (den eksempelløkke di viser skriver ihvertfald ingenting (mangler 'echo').
indsæt evt en debuglinie så du er sikker på hvad der bliver udskrevet hvor:

for ($i=0; $i < $antalspiller; $i++)
{
    echo "DEBUG i=$i navn=";      // DEBUG linie, fjernes når det fejlen er fundet.
    echo $array[$i][navn] ."<br>";
}

er du sikker på at $key er et tal?  Nok den almideligste fejl er at det er strenge så
  "8", "9", "10", "11"
bliver sorteret som bogstaver
  "10", "11", "8", "9"

mvh JakobA
Avatar billede pblv Nybegynder
14. juli 2004 - 14:38 #2
lukket
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