Avatar billede Slettet bruger
25. januar 2004 - 16:01 Der er 13 kommentarer og
1 løsning

Finde navnet på en key i et array

Jeg har et array, hvor der er følgende poster i array'et for hver spiller der har scoret mål:
maal[$spillernavn] = 12;

Hvordan trækker jeg $spillernavn ud af ovenstående i en foreach-løkke??

foreach ($maal as $value =>$key)
  {
    $spillernavn = ???
    $antal_maal  = $maal[$value];
  }

Jeg har prøvet med:
$spillernavn = key($maal);

Oprindelig ville jeg gerne have nogle flere oplysninger med om hver spiller (eks.):
$maal[$spillernr][0] = $spillernavn;
$maal[$spillernr][1] = $antal_scoringer;
$maal[$spillernr][2] = $spillernr;

men jeg er ikke klar over hvordan jeg sorterer et multi-dimensionelt array.....
Avatar billede googolplex Novice
25. januar 2004 - 16:09 #1
foreach ($maal as $key => $value)
  {
    $antal_maal  = $maal[$key ];
  }
Avatar billede googolplex Novice
25. januar 2004 - 16:10 #2
vrøvl:

foreach ($maal as $key => $value)
{
    $antal_maal  = $value;
}
Avatar billede Slettet bruger
25. januar 2004 - 16:11 #3
googolplex...> Det er ikke antal mål jeg har problemer med, men at trække navnet på key'en ud....

Eks:
$maal[karsten] = 12;

Hvordan får jeg en variabel med værdien "karsten"???
Avatar billede detox Nybegynder
25. januar 2004 - 16:20 #4
foreach ($maal as $key => $val)
  {
    $spillernavn = $key;
    $antal_maal  = $val;
  }
Avatar billede Slettet bruger
25. januar 2004 - 16:22 #5
$antal_maal er korrekt.

$spillernavn får tildelt værdierne (0,1,2,3, osv....)
Avatar billede detox Nybegynder
25. januar 2004 - 16:33 #6
Så er det ikke det array som du har vist. Dette eksempel:

$spillernavn = "Anders And";
$maal[$spillernavn] = 12;
foreach ($maal as $key => $val)
  {
    echo "$key - $val<br />";
  }

giver output:

Anders And - 12
Avatar billede Slettet bruger
25. januar 2004 - 16:54 #7
Min kode ser sådan her ud:

            while ($row_maal = mysql_fetch_assoc($query_maal))
              {
                $antal            = $row_maal[antal];
                $navn            = $row_maal[navn];

                $maal[$navn] = ($maal[$navn] + $antal);
              }

            rsort ($maal);

            $i_liste = 1;
            foreach ($maal as $value => $key)
              {
                $antal_maal  = $maal[$value];
                $spillernavn = $key;
                $tabel_maal_indhold = ($tabel_maal_indhold."
                  <tr>
                    <td width=\"30\" valign=\"top\" align=\"center\">$i_liste.</td>
                    <td width=\"200\" valign=\"top\">$spillernavn</td>
                    <td width=\"70\" valign=\"top\" align=\"center\">$antal_maal</td>
                  </tr>
                ");

                $i_liste ++;
              }
Avatar billede Slettet bruger
25. januar 2004 - 16:56 #8
echo'er jeg $navn i while-løkken, får jeg den rigtige værdi.....
Jeg har prøvet at lave foreach-løkken som i dit eksempel... den giver samme resultat.
Avatar billede Slettet bruger
25. januar 2004 - 17:00 #9
Hmmm.... det er tilsyneladende rsort der ødelægger det hele....
Avatar billede Slettet bruger
25. januar 2004 - 17:01 #10
Hmmm... det skal selvfølgelig være arsort i stedet.....
Avatar billede Slettet bruger
25. januar 2004 - 17:03 #11
Fik trods alt hjælp til at få løst mit problem.
Læg et svar og pointene er dine...
Avatar billede detox Nybegynder
25. januar 2004 - 17:04 #12
Jeps, arsort er svaret på den sortering, så du bibeholder dine key's.
Avatar billede Slettet bruger
26. januar 2004 - 10:19 #13
detox....> *Doooooh*
Kom til at trykke forkert, læg lige et nyt svar *g*
Avatar billede detox Nybegynder
26. januar 2004 - 14:08 #14
;o)
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