Avatar billede odsgaard Praktikant
26. september 2011 - 00:21 Der er 6 kommentarer og
1 løsning

Custom sorterings algoritme i PHP

Hej eksperter

Nu er jeg ikke en ørn til PHP, men jeg har et projekt, som jeg skal have lavet til php.

I den forbindelse, skal jeg høre, om der er mulighed for at man kan lave sin egen sorterings klasse til en liste i php (på samme måde som man kan gøre det i java)?

/Brian
Avatar billede arne_v Ekspert
26. september 2011 - 01:44 #1
Jeg formoder at det er Java Comparator du leder efter.

Forslag:

<?php
class Data {
    public $id;
    public $v1;
    public $v2;
    public function __construct($idarg, $v1arg, $v2arg) {
        $this->id = $idarg;
        $this->v1 = $v1arg;
        $this->v2 = $v2arg;
    }
}

$arr = array(new Data( 23006, 1, 3),
            new Data( 11258, 3, 1),
            new Data( 26394, 1, 3),
            new Data( 49385, 1, 5),
            new Data( 70468, 1, 1),
            new Data( 50911, 1, 1),
            new Data( 74502, 1, 1));

echo "<pre>\r\n";
foreach($arr as $elm) {
    echo $elm->id . " " . $elm->v1 . " " . $elm->v2 . "<br>\r\n";
}
echo "</pre>\r\n";

function cmp($a, $b) {
    if($a->v1 == $b->v1) {
        return $b->v2 - $a->v2;
    } else {
        return $b->v1 - $a->v1;
    }
}
usort($arr, "cmp");

echo "<pre>\r\n";
foreach($arr as $elm) {
    echo $elm->id . " " . $elm->v1 . " " . $elm->v2 . "<br>\r\n";
}
echo "</pre>\r\n";
?>
Avatar billede odsgaard Praktikant
26. september 2011 - 07:33 #2
Hej Arne

Det var lige præcis noget i den stil jeg manglede.

Tak for det

Smider du et svar :)

/Brian
Avatar billede arne_v Ekspert
26. september 2011 - 14:33 #3
svar
Avatar billede arne_v Ekspert
26. september 2011 - 17:12 #4
Java -> PHP: hvis du bruger et anerkendt MVC framework i PHP vil du maaske undgaa lidt af kultur chokket.
Avatar billede odsgaard Praktikant
27. september 2011 - 00:08 #5
Har du nogle forslag til læsning jeg kan kaste mig over :)

/Brian
Avatar billede arne_v Ekspert
27. september 2011 - 03:13 #6
Nej.

Men jeg kan give dig navnene paa nogle af de mest brugte:

Zend Framework
CakePHP
CodeIgniter
Symfony
Avatar billede odsgaard Praktikant
27. september 2011 - 07:24 #7
Tak for det, så kan jeg prøve at google mig frem til noget spændende :)

/Brian
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
Kurser inden for grundlæggende programmering

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