首頁 > 後端開發 > PHP問題 > php中數組排序的方法有哪些

php中數組排序的方法有哪些

PHPz
發布: 2023-04-20 14:24:44
原創
3494 人瀏覽過

在PHP中,陣列是一個非常重要的資料類型,它能夠儲存一系列的資料並且能夠方便的進行操作。當我們需要對陣列進行排序時,PHP提供了許多內建函數和方法。

本篇文章將介紹PHP中常用的陣列排序方法,主要包含下列內容:

  1. array_sort()函數
  2. sort()函數
  3. asort()函數
  4. ksort()函數
  5. usort()函數
  6. uasort()函數
  7. uksort()函數
  8. natsort()函數
  9. arsort()函數
  10. rsort()函數
  11. array_sort()函數

array_sort()函數是PHP中自訂的函數,可以用來對陣列進行排序。此函數呼叫時需要傳入兩個參數,第一個參數為要排序的數組,第二個參數為排序方式,可以使用SORT_ASC和SORT_DESC兩種方式。

下面是使用array_sort()函數對陣列進行排序的範例:

function array_sort($arr,$keys,$type=SORT_ASC){
    $keysvalue = array();
    foreach($arr as $key=>$val){
        $keysvalue[$key] = $val[$keys];
    }
    if($type == SORT_ASC){
        asort($keysvalue);
    }else{
        arsort($keysvalue);
    }
    reset($keysvalue);
    foreach($keysvalue as $key=>$vals) {
        $keysort[$key] = $key;
    }
    $new_array = array();
    foreach($keysort as $key=>$val) {
        $new_array[$val] = $arr[$val];
    }
    return $new_array;
}
登入後複製

使用方法:

$arr = array(

array('id'=>1,'name'=>'Tom','age'=>20),
array('id'=>2,'name'=>'Jerry','age'=>18),
array('id'=>3,'name'=>'Lucy','age'=>22)
登入後複製

) ;
$arr = array_sort($arr,'age',SORT_DESC);
print_r($arr);

輸出結果:

Array
(

[0] => Array
    (
        [id] => 3
        [name] => Lucy
        [age] => 22
    )

[1] => Array
    (
        [id] => 1
        [name] => Tom
        [age] => 20
    )

[2] => Array
    (
        [id] => 2
        [name] => Jerry
        [age] => 18
    )
登入後複製

)

  1. sort()函數

sort()函數是PHP中常用的排序函數之一,主要針對陣列進行排序。它可以按照升序或降序的方式排序,也可以保持陣列的索引關係不變。

下面是使用sort()函數對陣列進行排序的範例:

$arr = array(3,1,4,2,5);
sort($arr );
print_r($arr);

輸出結果:

Array
(

[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
登入後複製

)

  1. asort( )函數

asort()函數是對陣列進行排序的一種方法,它可以按照升序或降序的方式排序,但是會保持陣列的索引關係不變。在使用asort()函數時,它會根據陣列的值來進行排序。

下面是使用asort()函數對陣列進行排序的範例:

$arr = array(3,1,4,2,5);
asort($arr );
print_r($arr);

輸出結果:

Array
(

[1] => 1
[3] => 2
[0] => 3
[2] => 4
[4] => 5
登入後複製

)

  1. ksort( )函數

ksort()函數是對陣列進行排序的一種方法,它可以按照升序或降序的方式來排序,但是會保持陣列的鍵(key)與值(value)之間的關係不變。

下面是使用kso​​rt()函數對陣列進行排序的範例:

$arr = array('d'=>'Dog','a'=>'Apple ','c'=>'Cat','b'=>'Boy');
ksort($arr);
print_r($arr);

輸出結果:

Array
(

[a] => Apple
[b] => Boy
[c] => Cat
[d] => Dog
登入後複製
登入後複製
登入後複製

)

  1. usort()函數

usort()函數是對陣列進行排序的一種方法,它不同於其他排序函數,usort()函數允許您自訂一個排序演算法。當使用usort()函數時,您可以指定一個比較函數,此函數將根據所需的標準(例如字串中包含的字元數或數字大小)比較陣列的值。

下面是使用usort()函數對陣列進行排序的範例:

function cmp($a, $b)
{

if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
登入後複製
登入後複製
登入後複製

}
$arr = array(3,1,4,2,5);
usort($arr, "cmp");
print_r($arr);

輸出結果:

Array
(

[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
登入後複製

)

  1. uasort()函數

uasort()函數是PHP中的一種排序函數,它與usort()函數類似,允許您自訂排序演算法。但是與usort()函數不同的是,它會保持陣列的鍵(key)值不變。

下面是使用uasort()函數對陣列進行排序的範例:

function cmp($a, $b)
{

if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
登入後複製
登入後複製
登入後複製

}
$arr = array('d'=>'Dog','a'=>'Apple','c'=>'Cat','b'=>'Boy');
uasort($arr, "cmp");
print_r($arr);

輸出結果:

Array
(

[a] => Apple
[b] => Boy
[c] => Cat
[d] => Dog
登入後複製
登入後複製
登入後複製

)

  1. uksort()函數

uksort()函數是PHP中的一種排序函數,它和ksort()函數類似,也可以依照升序或降序的方式來排序。但是與ksort()函數不同的是,它允許您自訂排序演算法,並且保持鍵(key)與值(value)之間的關係不變。

下面是使用uksort()函數對陣列進行排序的範例:

function cmp($a, $b)
{

if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
登入後複製
登入後複製
登入後複製

}
$arr = array('d'=>'Dog','a'=>'Apple','c'=>'Cat','b'=>'Boy');
uksort($arr, "cmp");
print_r($arr);

#輸出結果:

Array
(

[a] => Apple
[b] => Boy
[c] => Cat
[d] => Dog
登入後複製
登入後複製
登入後複製

)

  1. natsort()函數

natsort()函數是PHP中的一種排序函數,它對一個陣列按照自然數排序,這可能不太符合人的直覺,因為它會按照數字串中的數字進行比較。

下面是一個使用natsort()函數對陣列進行排序的例子:

$arr = array('img12.png', 'img10.png', 'img2.png', 'img1.png');
natsort($arr);
print_r($arr);

輸出結果:

Array
(

[3] => img1.png
[2] => img2.png
[1] => img10.png
[0] => img12.png
登入後複製

)

  1. arsort()函数

arsort()函数是PHP中的一种排序函数,它可以按照降序方式将数组中的元素进行排序。该函数不会保留原来数组中的键(key)与值(value)之间的关系。

下面是一个使用arsort()函数对数组进行排序的例子:

$arr = array(3,1,4,2,5);
arsort($arr);
print_r($arr);

输出结果:

Array
(

[4] => 5
[2] => 4
[0] => 3
[1] => 1
[3] => 2
登入後複製

)

  1. rsort()函数

rsort()函数是PHP中常用的排序函数之一,它可以按照降序的方式来排序。该函数不会保留原来数组中的键(key)与值(value)之间的关系。

下面是一个使用rsort()函数对数组进行排序的例子:

$arr = array(3,1,4,2,5);
rsort($arr);
print_r($arr);

输出结果:

Array
(

[0] => 5
[1] => 4
[2] => 3
[3] => 2
[4] => 1
登入後複製

)

总结:

以上介绍了PHP中常用的数组排序方法,包括array_sort()函数、sort()函数、asort()函数、ksort()函数、usort()函数、uasort()函数、uksort()函数、natsort()函数、arsort()函数和rsort()函数。不同的排序函数有不同的需求和使用场景,开发者应根据具体的需求来选择合适的排序函数。

以上是php中數組排序的方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板