PHP 陣列排序
在本教程中,你將學習如何在 PHP 中按升序或降序對陣列的元素或鍵進行排序。
用於陣列排序的 PHP 函式
在上一章中,你已經瞭解了 PHP 陣列的基本要素,即陣列是什麼,如何建立它們,如何檢視它們的結構,如何訪問它們的元素等等。你可以使用陣列做更多的事情,比如在任何陣列中對元素進行排序。
PHP 附帶了許多內建函式,專門用於以不同的方式排序陣列元素,如按字母順序或數字順序升序或降序排列。在這裡,我們將探討一些最常用於排序陣列的函式。
sort()
和rsort()
- 用於排序索引陣列asort()
和arsort()
- 用於按值排序關聯陣列ksort()
和krsort()
- 用於按鍵排序關聯陣列
按升序排序索引陣列
sort()
函式用於按升序對索引陣列的元素進行排序(字母用字母順序,數字用數字大小)。
<?php
// Define array
$colors = array("Red", "Green", "Blue", "Yellow");
// Sorting and printing array
sort($colors);
print_r($colors);
?>
該 print_r()
語句給出以下輸出:
Array ( [0] => Blue [1] => Green [2] => Red [3] => Yellow )
同樣,你可以按升序對陣列的數字元素進行排序。
<?php
// Define array
$numbers = array(1, 2, 2.5, 4, 7, 10);
// Sorting and printing array
sort($numbers);
print_r($numbers);
?>
該 print_r()
語句給出以下輸出:
Array ( [0] => 1 [1] => 2 [2] => 2.5 [3] => 4 [4] => 7 [5] => 10 )
按降序排序索引陣列
rsort()
函式用於按降序對索引陣列的元素進行排序(字母按字母順序,數字按數字大小)。
<?php
// Define array
$colors = array("Red", "Green", "Blue", "Yellow");
// Sorting and printing array
rsort($colors);
print_r($colors);
?>
該 print_r()
語句給出以下輸出:
Array ( [0] => Yellow [1] => Red [2] => Green [3] => Blue )
同樣,你可以按降序對陣列的數字元素進行排序。
<?php
// Define array
$numbers = array(1, 2, 2.5, 4, 7, 10);
// Sorting and printing array
rsort($numbers);
print_r($numbers);
?>
該 print_r()
語句給出以下輸出:
Array ( [0] => 10 [1] => 7 [2] => 4 [3] => 2.5 [4] => 2 [5] => 1 )
按值升序按升序排序關聯陣列
asort()
函式根據值按升序對關聯陣列的元素進行排序。它的工作方式就像 sort()
,但它在排序時保留了鍵與其值之間的關聯。
<?php
// Define array
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);
// Sorting array by value and print
asort($age);
print_r($age);
?>
該 print_r()
語句給出以下輸出:
Array ( [Harry] => 14 [Peter] => 20 [Clark] => 35 [John] => 45 )
按值降序排序關聯陣列
arsort()
函式根據值按降序對關聯陣列的元素進行排序。它的工作方式就像 rsort()
,但它在排序時保留了鍵與其值之間的關聯。
<?php
// Define array
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);
// Sorting array by value and print
arsort($age);
print_r($age);
?>
該 print_r()
語句給出以下輸出:
Array ( [John] => 45 [Clark] => 35 [Peter] => 20 [Harry] => 14 )
按鍵按升序排序關聯陣列
ksort()
函式按其鍵按升序對關聯陣列的元素進行排序。它在排序時保留鍵與其值之間的關聯,與 asort()
功能相同。
<?php
// Define array
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);
// Sorting array by key and print
ksort($age);
print_r($age);
?>
該 print_r()
語句給出以下輸出:
Array ( [Clark] => 35 [Harry] => 14 [John] => 45 [Peter] => 20 )
按鍵降序排序關聯陣列
krsort()
函式按其鍵按降序對關聯陣列的元素進行排序。它在排序時保留鍵與其值之間的關聯,與 arsort()
功能相同。
<?php
// Define array
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);
// Sorting array by key and print
krsort($age);
print_r($age);
?>
該 print_r()
語句給出以下輸出:
Array ( [Peter] => 20 [John] => 45 [Harry] => 14 [Clark] => 35 )