php 以两种方式对数组进行排序

标签 php arrays sorting

我尝试通过以下两种方式对数组的元素进行排序:

  • 按 key 长度排序(最小的应该排在前面)- See here
  • 应该先考虑最大值

要按 key 长度排序,我使用以下命令:

    function sortByLength($a,$b){
      if($a == $b) return 0;
      return (strlen($a) < strlen($b) ? -1 : 1);
    }

    uasort($deals_tag,'sortByLength');

数组是这样排序的:

Array
(
 [/merchantProductFeed] => 1
 [/merchantProductFeed/merchant] => 1
 [/merchantProductFeed/merchant/prod/text] => 158
 [/merchantProductFeed/merchant/prod] => 158
)

我希望它像这样排序:

Array
(
 [/merchantProductFeed/merchant/prod] => 158
 [/merchantProductFeed/merchant/prod/text] => 158
 [/merchantProductFeed] => 1
 [/merchantProductFeed/merchant] => 1
)

请注意,数组首先按键长度排序,然后按最大值排序。

我不知道该怎么做。

任何帮助将不胜感激!谢谢!

最佳答案

更新:您可以使用array_mulitsort 。尝试一下

$k= array();
$v = array();

foreach($deals_tag as $key => $value){
    $k[] = $key;
    $v[] = $value;
}

array_multisort($v, SORT_DESC, $k, SORT_ASC,  $deals_tag);

关于php 以两种方式对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11706873/

相关文章:

php - 警告 : Missing argument 1 when passing parameters from url to controller (laravel)

php - 带有 join 子句和 group by 子句的 mysql 查询

javascript - 根据不同的选择框获取数组值

c - 段错误和引用结构数组

algorithm - 数组合并排序复杂度计算

php - 我想从这个 JSON URL 回显 IMDB ID、标题、质量和嵌入 URL

php - 了解 PHP 和 MySQL 安全性基础知识

php - 根据连续出现缩短数组

algorithm - 在一般情况下, `quicksort 3way` 会比 `quicksort` 慢吗?

swift - 从 Swift 4 中返回的排序字典数组访问键