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
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";
?>