例如,如果您有一组数字5,4,3,2,1
,并且您希望所有数字按最接近3的顺序排列,那么结果将是3,2,4,5,1
。
我试过使用uasort
并编写了一个自定义排序函数来取固定数字(在这种情况下为3),但它不起作用。我编写了这个函数,从当前正在比较的两个数字中取出固定数字,并对它们应用abs
。
我需要一种方法,我可以比较哪个数字比较当前被访问的数字有多接近,并将其放置在数组的正确位置。
任何想法?这可以用uasort
实现吗?
uasort()
已经是一个好的开始。现在您只需要使用到3的距离作为对数组排序的标准:
uasort($arr, function($a, $b){
return abs(3-$a) - abs(3-$b);
});