-1

我有一组数组,我需要对它们进行数字排序:例如:

    $a= array('Adam','maths',3,'physics',5,'sports',6)
    $b= array('Mike','maths',6,'physics',2,'sports',8)
    $c= array('Sam','maths',3,'physics',9,'sports',6)
    $all = array($a,$b,$c)

现在我需要通过仅考虑数字来对 $all 进行排序。函数排序有替代方法吗?谢谢

4

2 回答 2

1

是的,使用排序功能,与SORT_NUMERIC

这是演示

于 2012-12-04T14:55:44.223 回答
0

从一个健全的数组结构开始:

$array = array(
    'Adam' => array('maths' => 3, 'physics' => 5, 'sports' => 6),
    'Mike' => array('maths' => 6, 'physics' => 2, 'sports' => 8),
    'Sam'  => array('maths' => 3, 'physics' => 9, 'sports' => 6)
);

然后,做一个简单的自定义排序:

usort($array, function ($a, $b) {
    if ($a['maths'] != $b['maths']) {
        return $a['maths'] - $b['maths'];
    }
    if ($a['physics'] != $b['physics']) {
        return $a['physics'] - $b['physics'];
    }
    return $a['sports'] - $b['sports'];
});
于 2012-12-04T15:34:09.040 回答