【问题标题】:Sort an array based on its sub-array [duplicate]根据子数组对数组进行排序[重复]
【发布时间】:2011-12-15 15:40:49
【问题描述】:

可能重复:
sorting array based on inner-array key-value

Array ( 
[0] => Array ( 
    [id] => 2 
    [name] => 4 
    [closed] => 
    [date] => 1319625994 
    [votes_up] => 0 
    [votes_down] => 0 
    [votes_pct_up] => 0 
    [votes_pct_down] => 0 
    [votes_balance] => 0 
    [votes_total] => 0 ) 
[1] => Array ( 
    [id] => 3 
    [name] => 3 
    [closed] => 
    [date] => 1319625994 
    [votes_up] => 0 
    [votes_down] => 0 
    [votes_pct_up] => 0 
    [votes_pct_down] => 0 
    [votes_balance] => 0 
    [votes_total] => 0 ) 
[2] => Array ( 
    [id] => 4 
    [name] => 2 
    [closed] => 
    [date] => 1319625995 
    [votes_up] => 1 
    [votes_down] => 0 
    [votes_pct_up] => 100 
    [votes_pct_down] => 0 
    [votes_balance] => 1 
    [votes_total] => 1 ) 
[3] => Array ( 
    [id] => 1 
    [name] => 1 
    [closed] => 
    [date] => 1319623450 
    [votes_up] => 2 
    [votes_down] => 0 
    [votes_pct_up] => 100 
    [votes_pct_down] => 0 
    [votes_balance] => 2 
    [votes_total] => 2 ) 
)

我如何根据它们的[votes_balance] 值对它们进行排序?

【问题讨论】:

  • 这已经被问过多次了。提问前请使用搜索功能。

标签: php arrays multidimensional-array


【解决方案1】:

使用 PHP 的 usort 函数,如下所示:

function compare($a, $b) {
    if($a['id'] == $b['id']) return 0;
    return ($a['id'] < $b['id']) -1 : 1;
}

【讨论】:

  • 太复杂了。就做return $a['id'] - $b['id'];
  • 我实际上是从 php-docs 复制了示例代码。
猜你喜欢
  • 2017-04-02
  • 2012-06-15
  • 2011-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-03
  • 2020-12-04
相关资源
最近更新 更多