I'm trying to sort an array of values.
The possible values in the array are 'neg_infinity',... {real numbers},.., 'infinity'
<?php
$a = array(
array('column' => 3),
array('column' => -1),
array('column' => 1),
array('column' => .1),
array('column' => 2),
array('column' => 'infinity'),
array('column' => 'neg_infinity'),
array('column' => 'infinity'),
);
I want:
$a = array(
array('column' => 'neg_infinity'),
array('column' => -1),
array('column' => .1),
array('column' => 1),
array('column' => 2),
array('column' => 3),
array('column' => 'infinity'),
array('column' => 'infinity'),
);
I've been playing around with uasort.
Anybody have a solution to his problem?
TEST DRIVER
<?php
function cmp($a, $b) {
if ($a == $b) {
return 0;
}
if ($a == 'neg_infinity') {
return -1;
}
if ($a == 'infinity') {
return 1;
}
return ($a < $b) ? -1 : 1;
}
$a = array('a' => 'infinity', 'b' => 8, 'c' => -1,'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4, 'd' => 'neg_infinity');
uasort($a, 'cmp');
var_dump($a);