【问题标题】:php sort an array by value and for equal values, sort by keyphp 按值对数组进行排序,对于相等的值,按键排序
【发布时间】:2014-06-05 11:39:48
【问题描述】:

我有一个数组

(0=>0,1=>3,2=>3)

我必须先按值对这个数组进行排序,对于相等的值,我必须先按递增键的顺序排序。

我曾尝试对 array_keys(SORT_DESC) 和 array_values(SORT_ASC) 分别使用多重排序,但这给了我:

(0=>0,1=>3,2=>3)

但我想要

(0=>0,2=>3,1=>3)

【问题讨论】:

  • 是的... nuff 说。 ksort 会做你想做的事。
  • ksort 仅按键排序,而不按值排序。

标签: php sorting array-multisort


【解决方案1】:

您始终可以使用简单的回调对其进行排序。使用uksort() 将是:

$input = array(0 => 0, 2 => 3, 1 => 3);

uksort($input, function($x, $y) use ($input)
{
   if($input[$x]==$input[$y])
   {
      return $x<$y?-1:$x!=$y;
   }
   return $input[$x]-$input[$y];
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    相关资源
    最近更新 更多