$sortPattern= array(1,2,8,4);
$toSort = array(2,4,8,18,16,26);
现在,我们必须根据$sortPattern
排序$toSort
阵列。阵列使用阵列排序
我们应该有结果
$result = array(2,8,4,18,16,26);
有谁知道函数要做到这一点,或者我们应该有我们自己写的函数来执行呢?
$sortPattern= array(1,2,8,4);
$toSort = array(2,4,8,18,16,26);
现在,我们必须根据$sortPattern
排序$toSort
阵列。阵列使用阵列排序
我们应该有结果
$result = array(2,8,4,18,16,26);
有谁知道函数要做到这一点,或者我们应该有我们自己写的函数来执行呢?
是的,你必须编写自己的排序功能,并将其与usort()
一起使用。在你的回调,你会做这样的事情:
if ($a == $b) {
return 0;
} elseif (array_search($a, $sortPattern) < array_search($b, $sortPattern) {
return -1;
} else {
return 1;
}
不要处理a和/或b不在排序模式中的情况。 –
不$sortPattern
对$toSort
什么样的影响?
看起来可能:
$result = array_merge(
array_intersect($sortPattern, $toSort), // 2, 8, 4
array_diff($toSort, $sortPattern) // 18, 16, 26
);
嗯......我看不到的格局如何与最终的排序顺序?但是你可以用'usort()'按你想要的顺序排序。 – Spudley
请稍微指定您的排序模式的语法,但不清楚它应该表达什么。 – hakre