Avatar billede mccookie Seniormester
19. april 2004 - 00:55 Der er 6 kommentarer og
2 løsninger

Oprettelse/sortering af et array

Jeg har forsøgt meget med arrays og kryber til korset og melder pas - DESVÆRRE

Jeg har nogle værdier:

ab_person_id antal_link

Disse 2 værdier skal følges ad ind i et array...

Tilsidst skal de sorteres faldende og kun de 10 højeste må udskrives.....

Er der nogen der kan hjælpe?
Avatar billede dennismp Nybegynder
19. april 2004 - 01:20 #1
lav en print_r() af dit array, og post det her, så kigger jeg på det før jeg smutter iseng.
Avatar billede morpheus Nybegynder
19. april 2004 - 01:22 #2
med hensyn til sortering af arrays, skal du nok kigge på asort() og/eller ksort()
Avatar billede mccookie Seniormester
19. april 2004 - 10:18 #3
$emne = "$fornavn $efternavn har tilføjet $antal_link links<br>"; $hitlisten = array($nr => "$emne"); }}
         
          echo $hitlisten[$nr];

$nr er en var der svare til antallet af link personen har tilføjet og derfor det tal jeg skal bruge til at sortere
Avatar billede mccookie Seniormester
19. april 2004 - 10:21 #4
Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [1] => Henning Jeppesen har tilføjet 36 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
) Array ( [23] => Kenneth Hoffmann har tilføjet 7 links
)
Avatar billede dennismp Nybegynder
19. april 2004 - 10:32 #5
$a er det array der skal sorteres

<?php
$a= array();
$a[] = 'Henning Jeppesen har tilføjet 36 links';
$a[] = 'Kenneth Hoffmann har tilføjet 7 links';

usort($a,'myarraysort');

for($i=0;$i<count($a) && $i < 10;$i++ )
    print ($i+1) . ": " . $a[$i] . "<br>";

function myarraysort($a,$b) {
    preg_match("/(\d+)\slinks$/", $a, $match);
    $aval = $match[1];
    preg_match("/(\d+)\slinks$/", $b, $match);
    $bval = $match[1];
    print "aval: $aval, bval $bval<br>";

    if ($aval == $bval) {
        return 0;
    }
    return ($aval > $bval) ? -1 : 1;
}
?>
Avatar billede dennismp Nybegynder
19. april 2004 - 10:33 #6
hovsa, glemte at fjerne lidt output;
<?php
$a= array();
$a[] = 'Henning Jeppesen har tilføjet 36 links';
$a[] = 'Kenneth Hoffmann har tilføjet 7 links';

usort($a,'myarraysort');

for($i=0;$i<count($a) && $i < 10;$i++ )
    print ($i+1) . ": " . $a[$i] . "<br>";

function myarraysort($a,$b) {
    preg_match("/(\d+)\slinks$/", $a, $match);
    $aval = $match[1];
    preg_match("/(\d+)\slinks$/", $b, $match);
    $bval = $match[1];

    if ($aval == $bval) {
        return 0;
    }
    return ($aval > $bval) ? -1 : 1;
}
?>
Avatar billede mccookie Seniormester
19. april 2004 - 10:37 #7
Sortere den så at den der har tilføjet flest links kommer ud som nr. 1?
Avatar billede dennismp Nybegynder
19. april 2004 - 10:47 #8
ja
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