【问题标题】:Sorting an array based on its value根据数组的值对数组进行排序
【发布时间】:2011-01-17 18:31:52
【问题描述】:

我有一个数组, 示例:

$array {
 [0] {
   [something]=1;
   [something2]=2;
     } 
 [1] {
   [something]=2;
   [something2]=4;
     }
 [2] {
   [something]=5;
   [something2]=2;
     }
}

我想根据key来排序数组;

所以它看起来像:

$array {
 [0] {
   [something]=5;
   [something2]=2;
     } 
 [1] {
   [something]=2;
   [something2]=4;
     }
 [2] {
   [something]=1;
   [something2]=2;
     }
}

【问题讨论】:

  • 这是什么排序?数组不就是reversed吗?
  • 在示例中它已经被颠倒了,但是数组是根据键的值排序的,如果你看一下......

标签: php arrays sorting multidimensional-array


【解决方案1】:
function compare($x, $y) {
    return $x['something'] - $y['something'];
}

usort($input_array, 'compare');

您需要使用与上述类似的usort()

【讨论】:

  • +1 因为我不知道这一点。我刚刚写了一个算法来手动排序!
  • 谢谢,效果很好,节省了很多时间,我想用复杂的方法来做
【解决方案2】:

以下就足够了吗?

foreach($array as $key => $value){
    ksort( $array[$key] );
}

【讨论】:

  • 啊,对不起 - 我以为这就是你想要做的;按“某物”键排序。
  • np,但感谢您的尝试,解决方案由 dqhendricks 发布
猜你喜欢
  • 1970-01-01
  • 2015-04-08
  • 1970-01-01
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-01
  • 2022-12-18
相关资源
最近更新 更多