使用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;
}
}
}