按十进制值对多维数组排序

问题描述:

我正在尝试对包含十进制值的多维数组进行排序.根据我的测试,浮子在正确订购时遇到了麻烦.

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