2018/10/05

[程式設計] PHP Array陣列排序,介紹PHP常用的7種排序法

分別會介紹隨機排列、大到小排列(根據值、根據Key、不改變index)、小到大排列(根據值、根據Key、不改變index),總共7種方式排序。

 

程式碼:

<?php
//原始陣序
$array = array(5,8,9,5,4,4,2,1,0,5,8,7,4,5,2,6,3,5,1,5);
  
//隨機排序
shuffle($array);
echo "隨機排列\n";
print_r($array);
  
//小到大排序(根據值,會改變index)
sort($array);
echo "小到大排序(根據值,會改變index)\n";
print_r($array);
  
//大到小排序(根據值,會改變index)
rsort($array);
echo "大到小排序(根據值,會改變index)\n";
print_r($array);
  
//小到大排序(根據值,不改變index)
asort($array);
echo "小到大排序(根據值,不改變index)\n";
print_r($array);
  
//大到小排序(根據值,不改變index)
arsort($array);
echo "大到小排序(根據值,不改變index)\n";
print_r($array);
  
//小到大排序(根據key)
ksort($array);
echo "小到大排序(根據key)\n";
print_r($array);
  
//大到小排序(根據key)
krsort($array);
echo "大到小排序(根據key)\n";
print_r($array);
?>

執行結果:

隨機排列
Array
(
    [0] => 2
    [1] => 5
    [2] => 7
    [3] => 5
    [4] => 3
    [5] => 1
    [6] => 4
    [7] => 9
    [8] => 5
    [9] => 4
    [10] => 5
    [11] => 6
    [12] => 5
    [13] => 5
    [14] => 8
    [15] => 8
    [16] => 4
    [17] => 1
    [18] => 2
    [19] => 0
)
小到大排序(根據值,會改變index)
Array
(
    [0] => 0
    [1] => 1
    [2] => 1
    [3] => 2
    [4] => 2
    [5] => 3
    [6] => 4
    [7] => 4
    [8] => 4
    [9] => 5
    [10] => 5
    [11] => 5
    [12] => 5
    [13] => 5
    [14] => 5
    [15] => 6
    [16] => 7
    [17] => 8
    [18] => 8
    [19] => 9
)
大到小排序(根據值,會改變index)
Array
(
    [0] => 9
    [1] => 8
    [2] => 8
    [3] => 7
    [4] => 6
    [5] => 5
    [6] => 5
    [7] => 5
    [8] => 5
    [9] => 5
    [10] => 5
    [11] => 4
    [12] => 4
    [13] => 4
    [14] => 3
    [15] => 2
    [16] => 2
    [17] => 1
    [18] => 1
    [19] => 0
)
小到大排序(根據值,不改變index)
Array
(
    [19] => 0
    [17] => 1
    [18] => 1
    [15] => 2
    [16] => 2
    [14] => 3
    [11] => 4
    [12] => 4
    [13] => 4
    [10] => 5
    [9] => 5
    [6] => 5
    [7] => 5
    [5] => 5
    [8] => 5
    [4] => 6
    [3] => 7
    [1] => 8
    [2] => 8
    [0] => 9
)
大到小排序(根據值,不改變index)
Array
(
    [0] => 9
    [2] => 8
    [1] => 8
    [3] => 7
    [4] => 6
    [6] => 5
    [7] => 5
    [8] => 5
    [9] => 5
    [5] => 5
    [10] => 5
    [12] => 4
    [13] => 4
    [11] => 4
    [14] => 3
    [16] => 2
    [15] => 2
    [17] => 1
    [18] => 1
    [19] => 0
)
小到大排序(根據key)
Array
(
    [0] => 9
    [1] => 8
    [2] => 8
    [3] => 7
    [4] => 6
    [5] => 5
    [6] => 5
    [7] => 5
    [8] => 5
    [9] => 5
    [10] => 5
    [11] => 4
    [12] => 4
    [13] => 4
    [14] => 3
    [15] => 2
    [16] => 2
    [17] => 1
    [18] => 1
    [19] => 0
)
大到小排序(根據key)
Array
(
    [19] => 0
    [18] => 1
    [17] => 1
    [16] => 2
    [15] => 2
    [14] => 3
    [13] => 4
    [12] => 4
    [11] => 4
    [10] => 5
    [9] => 5
    [8] => 5
    [7] => 5
    [6] => 5
    [5] => 5
    [4] => 6
    [3] => 7
    [2] => 8
    [1] => 8
    [0] => 9
)

沒有留言:

突破同溫層:社群媒體的迷霧與真相

你有沒有想過,為什麼滑手機時,總是看到跟自己想法差不多的人在吶喊?不管是政治、疫苗,還是哪個明星的八卦,彷彿整個世界都跟你站在同一邊?這不是巧合,而是社群媒體的演算法在作怪。它像個過分熱心的媒人,硬要把你塞進一個溫暖的小圈圈,讓你舒服得不想離開。但問題是,這種「同溫層」真的對我們...