du6jws6975
2012-06-17 03:40
浏览 46
已采纳

基于数组值对数组进行排序

For an instance you have an array:

$unsorted = array(
    'desert' => array(
        'time' => '1339902235',
        'name' => 'desert.jpg'
    ),
    'sea' => array(
        'time' => '1339900801',
        'name' => 'sea.jpg'
    ),
    'mountain' => array(
        'time' => '1339902285',
        'name' => 'mountain.jpg'
    ),
);

Would it be possible to sort the array by the value of $unsorted[$a]['time']?

图片转代码服务由CSDN问答提供 功能建议

对于一个实例,你有一个数组:

  $ unsorted  = array(
'desert'=> array(
'time'=>'1339902235',
'name'=>'desert.jpg'
),
'sea'=> 数组(
'时间'=>'1339900801',
'名称'=>'sea.jpg'
),
'mountain'=>数组(
'时间'=>'  1339902285',
'name'=>'mountain.jpg'
),
); 
   
 
 

是否可以按数组对数组进行排序 $ unsorted [$ a] ['time'] 的价值?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

  • dongzhiju0324 2012-06-17 03:44
    最佳回答

    You can use something like usort and strnatcasecmp.

    For example:

    function sort_2d_asc($array, $key) {
        usort($array, function($a, $b) use ($key) {
            return strnatcasecmp($a[$key], $b[$key]);
        });
    
        return $array;
    }
    
    function sort_2d_desc($array, $key) {
        usort($array, function($a, $b) use ($key) {
            return strnatcasecmp($b[$key], $a[$key]);
        });
    
        return $array;
    }
    
    $unsorted = array(
        'desert' => array(
            'time' => '1339902235',
            'name' => 'desert.jpg'
        ),
        'sea' => array(
            'time' => '1339900801',
            'name' => 'sea.jpg'
        ),
        'mountain' => array(
            'time' => '1339902285',
            'name' => 'mountain.jpg'
        ),
    );
    
    $sorted = sort_2d_asc($unsorted, 'time');
    
    评论
    解决 无用
    打赏 举报
查看更多回答(2条)

相关推荐 更多相似问题