使用php-usort进行第二次排序

使用php-usort进行第二次排序,php,arrays,usort,Php,Arrays,Usort,因此,我得到了大量数据,需要根据两个标准对它们进行排序 有变量$data['important']和$data['basic'] 它们是简单的数字,我正在使用uasort进行排序 $data首先按重要项,然后按基本项 所以 usort函数是一个简单的 public function sort_by_important($a, $b) { if ($a[important] > $b[important]) { return -1;

因此,我得到了大量数据,需要根据两个标准对它们进行排序

有变量
$data['important']
$data['basic']

它们是简单的数字,我正在使用uasort进行排序
$data
首先按重要项,然后按基本项

所以

usort函数是一个简单的

public function sort_by_important($a, $b) {

        if ($a[important] > $b[important]) {
            return -1;
        } 
        elseif ($b[important] > $a[important]) {
            return 1;
        } 
        else {
            return 0;
        }
    }
如何将数组重新排序为第二个变量,并保持重要的顺序

谢谢大家

编辑


在这之后添加第三个排序选项如何?如此重要>基本>更少

为什么不简单地使用array_multisort()


为什么不直接使用array_multisort()呢


您确实应该使用
array\u multisort()

但是如果必须使用
usort()


您确实应该使用
array\u multisort()

但是如果必须使用
usort()


array_multisort是正确的答案,我必须给kenny打分,因为他给了我答案,把顺序放在不同的变量中是让我困惑的地方。谢谢你的帮助!array_multisort是正确的答案,我必须给kenny打分,因为他给了我答案,把顺序放在不同的变量中是让我困惑的地方。谢谢你的帮助!
public function sort_by_important($a, $b) {

        if ($a[important] > $b[important]) {
            return -1;
        } 
        elseif ($b[important] > $a[important]) {
            return 1;
        } 
        else {
            return 0;
        }
    }
public function sort_by_important($a, $b) { 
    if ($a['Important'] > $b['Important']) { 
        return -1; 
    } elseif ($b['Important'] > $a['Important']) { 
        return 1; 
    } else { 
        if ($a['Basic'] > $b['Basic']) { 
            return -1; 
        } elseif ($b['Basic'] > $a['Basic']) { 
            return 1; 
        } else { 
            return 0; 
        }
    } 
} 
// Obtain a list of columns
foreach ($data as $key => $row) {
    $important[$key]  = $row['important'];
    $basic[$key] = $row['basic'];
}

array_multisort($important, SORT_NUMERIC, SORT_DESC,
                $basic, SORT_NUMERIC, SORT_DESC,
                $data);
public function sort_by_important($a, $b) {

    if ($a[important] > $b[important]) {
        return -1;
    } elseif ($b[important] > $a[important]) {
        return 1;
    } else {
        if ($a[basic] > $b[basic]) {
            return -1;
        } elseif ($b[basic] > $a[basic]) {
            return 1;
        } else {
            return 0;
        }
    }
}