按十进制值对多维数组排序
问题描述:
我正在尝试对包含十进制值的多维数组进行排序.根据我的测试,浮子在正确订购时遇到了麻烦.
What I'm trying to do is sort a multi-dimensional array that contains decimal values. From what I've tested, floats are having trouble being ordered properly.
Array
(
[0] => Array
(
[company] => Ebay
[weight] => 4.6
)
[1] => Array
(
[company] => Ebay
[weight] => 1.7
)
[2] => Array
(
[company] => Ebay
[weight] => 3.7
)
)
usort($array, 'order_by_weight');
// Sorts DESC highest first
function order_by_weight($a, $b) {
return $b['weight'] - $a['weight'];
}
按降序对这些数字进行排序的最佳方法是什么?
答
$arr = array(
array('company' => 'A', 'weight' => 4.6),
array('company' => 'B', 'weight' => 1.7),
array('company' => 'C', 'weight' => 3.7),
);
usort($arr, 'order_by_weight');
function order_by_weight($a, $b) {
return $b['weight'] > $a['weight'] ? 1 : -1;
}
var_dump($arr);
PS:这不是一门火箭科学, http://php.net/usort 上使用了这个确切的技巧"作为第一个示例. a>
PS: it's not a rocket science - this exact "trick" is used as the first example at http://php.net/usort