大家好
我這邊整理一下PHP常用的陣列排序功能
給大家參考

 

 

$test = array(
    'C' => '3',
    'B' => '5',
    'A' => '2',
    'D' => '4',
    'E' => '1',
    );

//sort:依照值 由小到大排序 (返回值不包含KEY)
sort($test);
print_r($test);
/*
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
*/

//ksort:依照KEY 由小到大排序
ksort($test);
print_r($test);
/*
Array
(
    [A] => 2
    [B] => 5
    [C] => 3
    [D] => 4
    [E] => 1
)
*/

//krsort:依照KEY 由大到小排序
krsort($test);
print_r($test);
/*
Array
(
    [E] => 1
    [D] => 4
    [C] => 3
    [B] => 5
    [A] => 2
)
*/

//asort:依照值 由小到大排序
asort($test);
print_r($test);
/*
Array
(
    [E] => 1
    [A] => 2
    [C] => 3
    [D] => 4
    [B] => 5
)
*/

//arsort:依照值 由大到小排序
arsort($test);
print_r($test);
/*
Array
(
    [B] => 5
    [D] => 4
    [C] => 3
    [A] => 2
    [E] => 1
)
*/

//usort:依照值 由函式排序(返回值不包含KEY)
usort($test,function($a, $b){
    if ($a == $b) {
        return 0;
    }
    //2擺第一
    return ($a == 2 ? -1:($b == 2 ? 1:($a < $b ? -1 : 1)));
});
print_r($test);
/*
Array
(
    [0] => 2
    [1] => 1
    [2] => 3
    [3] => 4
    [4] => 5
)
*/

//uksort:依照KEY 由函式排序(返回值包含KEY)
uksort($test,function($a, $b){
    if ($a == $b) {
        return 0;
    }
    //B擺第一
    return ($a == 'B' ? -1:($b == 'B' ? 1:($a < $b ? -1 : 1)));
});
print_r($test);
/*
Array
(
    [B] => 5
    [A] => 2
    [C] => 3
    [D] => 4
    [E] => 1
)
*/

//uasort:依照值 由函式排序(返回值包含KEY)
uasort($test,function($a, $b){
    if ($a == $b) {
        return 0;
    }
    //2擺第一
    return ($a == 2 ? -1:($b == 2 ? 1:($a < $b ? -1 : 1)));
});
print_r($test);
/*
Array
(
    [A] => 2
    [E] => 1
    [C] => 3
    [D] => 4
    [B] => 5
)
*/

 

 

這邊整理一下表格
 
sort
依照值 由小到大排序
返回值不包含KEY
ksort
依照KEY 由小到大排序
返回值包含KEY
krsort
依照KEY 由大到小排序
返回值包含KEY
asort
依照值 由小到大排序
返回值包含KEY
arsort
依照值 由大到小排序
返回值包含KEY
usort
依照值 由函式排序
返回值不包含KEY
uksort
依照KEY 由函式排序
返回值包含KEY
uasort
依照值 由函式排序
返回值包含KEY
 
 
希望對大家有幫助
感恩!