使用uasort函数对PHP数组进行排序

5
我需要按值对一个数组进行排序,但如果元素的值相等,则需要比较它们的键并按它们排序。
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的键)。 值可以相同,但键不同; 如何解决这个问题?
1个回答

6
尝试以下代码,它使用了 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;
});

@user2304996:没问题!记得将你的问题标记为已回答 - Tim Cooper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接