我正在尝试对一组值进行排序。
数组中的可能值为 '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'),
);
我要:
$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'),
);
我一直在研究 uasort .
有人能解决他的问题吗?
试驾
<?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);
最佳答案
将其用于您的排序功能:
function cmp($a, $b) {
if ($a == 'neg_infinity') {
return -1
}
if ($a == 'infinity') {
return 1
}
return ($a < $b ? -1 : 1)
}
关于PHP自定义排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7262783/