PHP对数组进行排序

时间:2010-08-10 14:13:59

标签: php algorithm

我有以下数组结构:

$list = array();
$element1 = array('start' => '10', 'end' => '15');
$element2 = array('start' => '1',  'end' => '5');
$list[] = $element1;
$list[] = $element2;

startend中的每个元素都只是数字。

我想按$list值排序start。我怎样才能有效地做到这一点?

2 个答案:

答案 0 :(得分:4)

function cmp($a, $b)
{
    if ($a['start'] == $b['start']) {
        return 0;
    }
    return ($a['start'] < $b['start']) ? -1 : 1;
}

$list = array();
$element1 = array('start' => '10', 'end' => '15');
$element2 = array('start' => '1',  'end' => '5');
$list[] = $element1;
$list[] = $element2;

usort($list, "cmp");

答案 1 :(得分:4)

您可以在此比较功能中使用usort

function cmp($a, $b) {
    if ($a['start'] == $b['start']) {
        return $a['end'] - $b['end'];
    } else {
        return $a['start'] - $b['start'];
    }
}

使用此比较功能,元素首先按 start 值排序,然后按 end 值排序。