Avatar billede 13thsky Nybegynder
13. november 2012 - 11:20 Der er 4 kommentarer og
1 løsning

Sortering og visning af tal fra array

Jeg har et array $array med indholdet:

"Designnr:345", "???-444s", "345", "s2002", "FF..2", "r:33", "Dig:334-1dd-Design444", "444[0]"    osv.

Jeg vil gerne have en funktion som kan tække alle tal ud af $array og vise hvor mange gange tallet optæder og sorteret efter dette.

Dvs. ovenstående eksempel skal f.eks. give følgende output:

444 = 3
345 = 2
2002 = 1
334 = 1
33 = 1
2 = 1
1 = 1
0 = 1
Avatar billede michael_stim Ekspert
13. november 2012 - 11:46 #1
Du kræver ret meget og giver kun lidt respons :(

Jeg vil gerne have
Jeg vil gerne have et færdigt svar og ikke blot en henvisning til php.net sort funktion eller lign. (taget fra http://www.eksperten.dk/spm/972190)
osv.

Følg gerne op på dine spørgsmål. Jeg er ganske sikker på at hvis du havde uddybet dit spørgsmål i den anden tråd, havde arne_v et ganske kompetent svar til dig ;o)
Avatar billede arne_v Ekspert
14. november 2012 - 01:28 #2
<?php
$a = array("Designnr:345", "???-444s", "345", "s2002", "FF..2", "r:33", "Dig:334-1dd-Design444", "444[0]");
$a2 = array();
foreach($a as $e) {
    preg_match_all('/\d+/is', $e, $matches);
    for($i = 0; $i < count($matches[0]); $i++) {
        $a2[] = $matches[0][$i];
    }
}
$a3 = array_count_values($a2);
arsort($a3);
foreach($a3 as $k => $v) {
    echo "$k $v\r\n";
}
?>
Avatar billede lclemens Nybegynder
15. november 2012 - 03:46 #3
Evt.

preg_match_all('/\d+/', implode('|', $a), $matches);
$a3 = array_count_values($matches[0]);
Avatar billede 13thsky Nybegynder
16. november 2012 - 13:48 #4
Tak Arne. Drop et svar :)
Avatar billede arne_v Ekspert
16. november 2012 - 14:50 #5
svar
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