【问题标题】:PHP sorting a set of multidimensional arraysPHP对一组多维数组进行排序
【发布时间】:2015-11-28 09:50:53
【问题描述】:

我有一个数组,其中包含另一个数组,其中包含距离和 ID。我需要对数组的距离部分进行排序,因此 ID 仍然与其各自的距离相关。

例如。

array
(
    [0] => array(
                    [0] => 170
                    [1] => 123abc
    )
    [1] => array(
                    [0] => 150
                    [1] => 456def
    )
) 

现在,我想对距离进行升序排序,这样排序后的输出将如下所示:

array
(
    [0] => array(
                    [0] => 150
                    [1] => 456def
    )
    [1] => array(
                    [0] => 170
                    [1] => 123abc
    )
) 

由于 150 小于 170,因此它“上移”了。

我已经查看了 PHP 函数; array_multisort() 等但是这些似乎只对数组中的值进行排序,而不是对一组数组进行排序。

任何帮助表示赞赏。


编辑: 第一个数组中没有固定数量的项目 - 它的范围从 1 到无穷大。

【问题讨论】:

  • 你可以试试array_map(),它将对父数组中的每个数组进行排序。
  • 如果可以简单地使用usortuasort,为什么还要使用array_map
  • 对不起,我应该说可以有超过两个“组”距离和 id 值。我认为在这种情况下使用usort 是不可行的。
  • @RyanVincent 对不起 - 是的,确实有效。我假设usort 仅适用于嵌套数组。在此处粘贴:pastebin.com/XwCNPaMN

标签: php arrays sorting multidimensional-array


【解决方案1】:

使用usort

usort($yourArray, function($a, $b) {
    return $a[0] - $b[0]; // index 0 is your 150 or 170
});

【讨论】:

    猜你喜欢
    • 2016-09-27
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2012-04-03
    • 2021-10-12
    • 2012-06-15
    相关资源
    最近更新 更多