【问题标题】:Sorting Multi Dimensional Array with PHP [duplicate]用PHP对多维数组进行排序[重复]
【发布时间】:2019-07-05 21:01:37
【问题描述】:

我有以下数组:

Array(
[0] => Array(
     ['sort'] => 1
     ['ques'] => 'Zing order'
    )
[1] => Array(
     ['sort'] => 1
     ['ques'] => 'How stackoverflow works?'
    )
[2] => Array(
     ['sort'] => 2
     ['ques'] => 'What is PHP'
    )
)

我想要的是:

Array(
    [0] => Array(
         ['sort'] => 1
         ['ques'] => 'How stackoverflow works?'
        )
    [1] => Array(
         ['sort'] => 1
         ['ques'] => 'Zing order'
        )
    [2] => Array(
         ['sort'] => 2
         ['ques'] => 'What is PHP'
        )
    )

理想情况下,它应该首先使用排序键排序,然后使用 ques 键按字母顺序排序。

【问题讨论】:

  • 为此目的使用 usort 函数
  • 你试过什么?向我们展示您的最佳尝试(代码),以便我们为您提供帮助
  • 使用我刚刚在重复页面上发布的这个答案:stackoverflow.com/a/54647220/2943403 这是最现代、最简洁的方法。

标签: php arrays sorting multidimensional-array associative-array


【解决方案1】:

您可以在array_column() 的帮助下使用array_multisort()。所以你现在可以设置排序顺序了:)

<?php
$array = array(
    array(
        'sort' => 1,
        'ques' => 'Zing order'
    ),
    array(
        'sort' => 1,
        'ques' => 'How stackoverflow works?'
    ),
    array(
        'sort' => 2,
        'ques' => 'What is PHP'
    )
);
array_multisort(array_column($array, 'sort'), SORT_ASC,
                array_column($array, 'ques'),      SORT_ASC,
                $array);
print_r($array);
?>

演示: https://3v4l.org/ofeZG

【讨论】:

  • @mickmackusa thx,已编辑
猜你喜欢
  • 2012-04-23
  • 2013-04-26
  • 1970-01-01
  • 2012-07-18
  • 2011-05-29
  • 1970-01-01
相关资源
最近更新 更多