Avatar billede dmg Nybegynder
21. juni 2005 - 13:19 Der er 5 kommentarer og
1 løsning

Kald funktion random af foreach løkke

Hej eksperter.

Jeg har nedenstående kode, som jeg gerne vil køre random. Foreach-løkken henter alle medarbejderer i databasen og kalder nedenstående funktion med medarbejder parametrer!

Er der en måde, så nedenstående funktion bliver kørt i en random rækkefølge? Håber i kan hjælpe!!!



foreach($readAllMedarbejderBehov as $MedarbejderBehov)
    {
        if($MedarbejderBehov->getPrio1Id() || $MedarbejderBehov->getPrio2Id() ||
          $MedarbejderBehov->getPrio3Id() == $AfdelingBehov->getAfdelingId())
        {
            Priotet($MedarbejderBehov->getPrio1Id(), $MedarbejderBehov->getPrio2Id(), $MedarbejderBehov->getPrio3Id(),
                    $MedarbejderBehov->getId());

        }
       
    }
Avatar billede nielle Nybegynder
21. juni 2005 - 21:48 #1
<?php
$Antal = count($readAllMedarbejderBehov);

srand((float) microtime() * 10000000);
$rand_keys = array_rand($readAllMedarbejderBehov, $Antal);

foreach ($rand_keys as $key)
{
    $MedarbejderBehov = $readAllMedarbejderBehov[$key];

    if ($MedarbejderBehov->getPrio1Id() ||
        $MedarbejderBehov->getPrio2Id() ||
        $MedarbejderBehov->getPrio3Id() == $AfdelingBehov->getAfdelingId())
        {
        Priotet($MedarbejderBehov->getPrio1Id(), $MedarbejderBehov->getPrio2Id(), $MedarbejderBehov->getPrio3Id(),
        $MedarbejderBehov->getId());
    }
}
?>
Avatar billede dmg Nybegynder
22. juni 2005 - 08:36 #2
Hej Nielle og mange tak for hjælpen. Lige inden du skrev fandt jeg denne:

shuffle($readAllMedarbejderBehov);

foreach($readAllMedarbejderBehov as $MedarbejderBehov)

Men af én eller anden årsag, tror jeg din er bedre :-) Har du mulighed for at forklare forskellen mellem shuffle og den kode du har foreslået. Du har selvfølgelig fortjent dine points ;-)
Avatar billede nielle Nybegynder
22. juni 2005 - 17:25 #3
Der er vel egentlig kun én væsentlig forskel. Bruger du min algoritme bliver dit array ikke blandet, kun gennemløbet i en tilfældig rækkefølge. Bruger du derimod shuffel vil dit array bagefter være i en anden rækkefølge end den du oprettede det i. Det afhænger af, hvordan du efterfølgende skal bruge dit array, om dette er acceptabelt eller ej.

Jeg tror i øvrigt – ud fra nogle af dine tidligere spørgsmål at du gerne vil arbejde med associative arrays og der dur shuffel ikke (eftersom at der ikke er nogen egentlig rækkefølge af elementerne for disse).

Min metode udtrækker et random array af key-felterne og dette vil gå godt både for almindelige arrays og for associative arrays.
Avatar billede nielle Nybegynder
22. juni 2005 - 17:26 #4
Og et svar :^)
Avatar billede dmg Nybegynder
24. juni 2005 - 08:00 #5
Sådan Nielle.

Meget genialt! Mange tak for hjælpen!!! Er du god til arrays? For så har jeg endnu en opgave du gerne må kigge på...
Avatar billede nielle Nybegynder
24. juni 2005 - 17:21 #6
Jeg er ikke vild meget ekspert - men fortæl.
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