首页 > 解决方案 > 对内部有两个数组的多维数组进行排序?

问题描述

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

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上的数字对我的数组进行排序,例如在 index: [0][0]= 13.31421

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

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

标签: phparrayssortingmultidimensional-array

解决方案


尝试使用 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");

推荐阅读