八:PHP数组排序

1. 各种排序函数

  • sort() 函数用于对数组单元从低到高进行排序。
  • rsort() 函数用于对数组单元从高到低进行排序。
  • asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
  • arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
  • ksort() 函数用于对数组单元按照键名从低到高进行排序。
  • krsort() 函数用于对数组单元按照键名从高到低进行排序

sort会改变原来数组而不是创建新的数组

2.举个栗子
2.1 sort()

// 对整型排序
$numbers = array(1,4,6,3,2,7,9,4,2,4,7);
sort($numbers);
print_r($numbers); // Array ( [0] => 1 [1] => 2 [2] => 2 [3] => 3 [4] => 4 [5] => 4 [6] => 4 [7] => 6 [8] => 7 [9] => 7 [10] => 9 )

//sort 会按照字母的顺序对字母排序
$letter = array('h','g','r','s','h','x','e','a','l','m','y','u','p');
sort($letter);
print_r($letter); // Array ( [0] => a [1] => e [2] => g [3] => h [4] => h [5] => l [6] => m [7] => p [8] => r [9] => s [10] => u [11] => x [12] => y )

//sort 按照汉字拼音的先后顺序排序,utf8格式的文件不可以直接用,GBK和gb2312文件可用
$userAges = array('李四', '张三', '王五');
sort($userAges);
print_r($userAges); // Array ( [0] => 张三 [1] => 李四 [2] => 王五 )

//sort的第二个可选参数
$number = array(2,12);
sort($number,SORT_STRING);  //第二个参数为sort_string,说明要求数组元素按照字符串的顺序比较(无论数组元素是字符串还是数字,都会转化成字符串比较)
print_r($number); // Array ( [0] => 12 [1] => 2 ) 
sort($number,SORT_NUMERIC); //转化成数字进行比较
print_r($number); // Array ( [0] => 2 [1] => 12 )

2.2 rsort()

$numbers = array(1,4,6,3,2,7,9,4,2,4,7);
rsort($numbers);
print_r($numbers); // Array ( [0] => 9 [1] => 7 [2] => 7 [3] => 6 [4] => 4 [5] => 4 [6] => 4 [7] => 3 [8] => 2 [9] => 2 [10] => 1 )

//sort 会按照字母的顺序对字母排序
$letter = array('h','g','r','s','h','x','e','a','l','m','y','u','p');
rsort($letter);
print_r($letter); // Array ( [0] => y [1] => x [2] => u [3] => s [4] => r [5] => p [6] => m [7] => l [8] => h [9] => h [10] => g [11] => e [12] => a ) 

$userAges = array('李四', '张三', '王五');
rsort($userAges);
print_r($userAges); // Array ( [0] => 王五 [1] => 李四 [2] => 张三 )

$number = array(2,12);
rsort($number,SORT_STRING); 
print_r($number); // Array ( [0] => 2 [1] => 12 )
rsort($number,SORT_NUMERIC);    
print_r($number); // Array ( [0] => 12 [1] => 2 )

2.3 asort()

$numbers = array(1,4,6,4,2,4,7);
asort($numbers);
print_r($numbers); // Array ( [0] => 1 [4] => 2 [5] => 4 [3] => 4 [1] => 4 [2] => 6 [6] => 7 )

$letter = array('h','g','r','s','h');
asort($letter);
print_r($letter); // Array ( [1] => g [0] => h [4] => h [2] => r [3] => s ) 

2.4 arsort()

$numbers = array(1,4,6,4,2,4,7);
arsort($numbers);
print_r($numbers); // Array ( [6] => 7 [2] => 6 [5] => 4 [3] => 4 [1] => 4 [4] => 2 [0] => 1 ) 

$letter = array('h','g','r','s','h');
arsort($letter);
print_r($letter); // Array ( [3] => s [2] => r [0] => h [4] => h [1] => g )

2.5 ksort()

$numbers = array(1,4,6,4,2,4,7);
ksort($numbers);
print_r($numbers); // Array ( [0] => 1 [1] => 4 [2] => 6 [3] => 4 [4] => 2 [5] => 4 [6] => 7 ) 

$letter = array('h','g','r','s','h');
ksort($letter);
print_r($letter); // Array ( [0] => h [1] => g [2] => r [3] => s [4] => h )

2.6 krsort()

$numbers = array(1,4,6,4,2,4,7);
krsort($numbers);
print_r($numbers); // Array ( [6] => 7 [5] => 4 [4] => 2 [3] => 4 [2] => 6 [1] => 4 [0] => 1 )  

$letter = array('h','g','r','s','h');
krsort($letter);
print_r($letter); // Array ( [4] => h [3] => s [2] => r [1] => g [0] => h )

你可能感兴趣的:(八:PHP数组排序)