【问题标题】:PHP Sort an array with uasortPHP 使用 uasort 对数组进行排序
【发布时间】:2014-01-20 22:09:48
【问题描述】:

我需要按值对数组进行排序,但如果元素的值相等,我需要比较它们的键并按它们排序。

uasort($pages_arr, function($a, $b){
                if ($a == $b){
                   return ($key_a < $key_b) ? -1 : 1; 
                }
                return ($a < $b) ? -1 : 1;
            });

我不明白,我怎样才能获得 $key_a 和 $key_b 值(元素 $a 和 $b 的键)。值可以相同,键不能; 如何解决这个问题?

【问题讨论】:

    标签: php arrays sorting


    【解决方案1】:

    尝试以下使用uksort 函数的方法:

    uksort($pages_arr, function($key_a, $key_b) use ($pages_arr) {
        $a = $pages_arr[$key_a];
        $b = $pages_arr[$key_b];
        if ($a == $b) {
           return ($key_a < $key_b) ? -1 : 1; 
        }
        return ($a < $b) ? -1 : 1;
    });
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-13
    • 1970-01-01
    • 2011-05-20
    相关资源
    最近更新 更多