Avatar billede jaboo Nybegynder
28. august 2000 - 00:25 Der er 2 kommentarer og
2 løsninger

tæl ord i array

jeg skal bruge en funktion der kan tælle antallet af bestemte ord i et array.

denne funktion hænger:

    function count_words ($wordarray, $find_word) {
        while (list($key, $cword) = each($wordarray)) {
            if ($find_word == $cword) {
                $n++;
            } else {
                // eftersom at arrayet er sorteret, kan vi gå ud fra
                // at vi ikke finder flere.
                end($wordarray);
            }
        }
        return intval($n);
    }
Avatar billede cederstrom Nybegynder
28. august 2000 - 04:23 #1
Fra PHP manualen: \"End() advances array\'s internal pointer to the last element.\"

Du vil altser sætte din \"pointer\" til at være på den sidste hver gang du går igennem word listen, så den bliver aldrig færdig.

Du er nød til at lave en \"return intval($n)\" istedet for, det kan du fint lave der.

Dog er der en anden fejl i den funktion, hvis det ord du søger efter ikke findes som det første ord, vil du ikke finde det. Den første test vil gå ned til else, som så vil afslutte while løkken.

du kan lave en:
else if($find_word < $cword) return... Så er du kommet forbi dit søge ord.  (alt efter hvilken rækkefølge du sortere i..

Håber det hjælper,
/Lasse
Avatar billede doeleman Nybegynder
28. august 2000 - 09:42 #2
Hvis du bruger php4 kan du evt. kigge på array_count_values()

http://www.php.net/manual/function.array-count-values.php
Avatar billede jaboo Nybegynder
28. august 2000 - 10:14 #3
cederstrom: tak! jeg kigger på det senere.
doeleman: vil du vise mig et eksempel?
Avatar billede jaboo Nybegynder
28. august 2000 - 19:03 #4
I har begge hjulpet godt! Mange tak.
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