gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 09:25:29 25 4
gpt4 key购买 nike

所以我有大量数据,需要按两个标准对它们进行排序。

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

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

所以

Important | Basic
10 | 8
9 | 9
9 | 7
7 | 9

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

如何将数组重新排序为第二个变量并保持重要顺序?

谢谢大家

编辑

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

最佳答案

你真的应该使用array_multisort()

// 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);

但是如果你必须使用usort():

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

关于php - 使用 php usort 进行第二次排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2875601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com