【问题标题】:Sort multidimensional array with two arrays inside?对内部有两个数组的多维数组进行排序?
【发布时间】:2019-06-29 15:36:52
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php arrays sorting multidimensional-array


    【解决方案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");
    

    【讨论】:

    • 在 PHP 7 及以上版本中添加关于使用 spaceship 运算符使其成为 return $a &lt;=&gt; $b 的注释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    相关资源
    最近更新 更多