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']?

  • 写回答

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条)

报告相同问题?

悬赏问题

  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)