排序多维数组我有位置数据的多维阵列(例如地址,电话,姓名,..)以及它们的相对距离的某一点为浮点数(例如0.49012608405149
或0.72952439473047
或1.4652101344361
或13.476735354172
)。用浮漂
现在我需要对这个数组进行排序,以便它以最近距离(0.49012608405149
)的数据集开始并以最远(13.476735354172
)结束。
我至今使用的功能做了很好的工作,但因为它使用的strcmp
function cmp($a, $b) {
return strcmp($a["distance"], $b["distance"]);
}
usort($resultPartner, "cmp");
我GOOGLE了很多,但找不到我的情况下,任何东西弄乱了一些时间,这是当然的。如果可能的话,我想避免使用foreach
声明,因为我认为它的大数组性能可能很差。
你有什么想法/经验,可以给我一个这样的工作功能?谢谢!
它是什么,有时 '搞乱'?我从我用C#的经验中学到了漂浮不太好的数字来比较,你应该检查它们几乎是相同的,而不是完全相同,因为它们相当不准确,这可能可以解释'混乱' – AmazingDreams 2013-02-26 11:41:51
它搞砸了,因为strcmp是一个字符串比较,因此显然不是排序浮点数的正确方法。 ;)但是直到现在我才知道更好.. :) – Sebsemillia 2013-02-26 11:51:14