用两个数组对多维数组进行排序?

时间:2019-06-29 15:36:52

标签: php arrays sorting multidimensional-array

我想根据另一个数组代表的值对我的数组进行排序。所以,这就是我的数组:

Array
(
    [0] => Array
        (
            [0] => 13.31421
            [1] => WP_Post Object (...)
        )
    [1] => Array
        (
            [0] => 4.213
            [1] => WP_Post Object (...)
        )
    [2] => Array
        (
            [0] => 144.314
            [1] => WP_Post Object (...)
        )
)

我想按索引0上的数字对数组进行排序,例如索引:[0][0] = 13.31421

我已经尝试在Google上找到一些答案,但是解决方案并没有真正解决:

uasort($post_distance, function($a, $b) {
    return $a[0] - $b[0];
});

1 个答案:

答案 0 :(得分:1)

尝试使用usort函数。

usort ( array &$array , callable $value_compare_func ) : bool

将此方法添加到您的代码中

function compare($a, $b)
{
    if ( $a[0] == $b[0] ) {
        return 0;
    }
    return ( $a[0] < $b[0] ) ? -1 : 1;
}

然后只需调用usort函数

usort($post_distance,"compare");