繁体   English   中英

PHP使用uasort对数组进行排序

[英]PHP Sort an array with uasort

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

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的键)。 值可以相同,键不是; 如何解决这个问题?

尝试以下,使用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;
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM