首页 > 程序开发 > PHP开发 > PHP数组排序函数总结
网站建设、切图、企业建站、微信开发 联系QQ:404658186 tel:18716186715
2015
08-14

PHP数组排序函数总结

文章目录 [收起]

PHP中数组的使用很频繁,很多时候需要对数组进行排序,主要有sort,rsort,asort,arsort,ksort,krsort,natsort,natcasesort8个函数来排序,下面来总结一下PHP数组排序的方法。

sort()函数

说明

函数按升序对给定数组的值排序。本函数为数组中的单元赋予新的键名,原有的键名将被删除。如果成功则返回 TRUE,否则返回 FALSE。

语法

sort(array, [sorttype])

参数 描述
array 必需。输入的数组。
sorttype 可选。函数第二参数作用为指定排序类型,是可选参数,可能的值为:

  • SORT_REGULAR – 默认。以它们原来的类型进行处理(不改变类型)。
  • SORT_NUMERIC – 把值作为数字来处理
  • SORT_STRING – 把值作为字符串来处理
  • SORT_LOCALE_STRING – 把值作为字符串来处理,基于本地设置*。

示例

<?php
$test_array = array(5,"86",3,'a',0,-5); 
sort($test_array); 
print_r($test_array); 
echo "<br />"; 
sort($test_array,SORT_NUMERIC); 
print_r($test_array); 
echo "<br />"; 
sort($test_array,SORT_STRING); 
print_r($test_array); 
?>

输出

Array ( [0] => -5 [1] => 0 [2] => a [3] => 3 [4] => 5 [5] => 86 ) 
Array ( [0] => -5 [1] => a [2] => 0 [3] => 3 [4] => 5 [5] => 86 ) 
Array ( [0] => -5 [1] => 0 [2] => 3 [3] => 5 [4] => 86 [5] => a )

rsort()函数

说明

rsort() 函数对数组的元素按照键值进行逆向排序。与 arsort() 的功能基本相同。该函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。

如果成功则返回 TRUE,否则返回 FALSE。

语法

rsort(array, [sorttype])

参数

同sort()

示例

<?php 
$test_array = array(5,"86",3,'a',0,-5); 
rsort($test_array); 
print_r($test_array); 
echo "<br />"; 
rsort($test_array,SORT_NUMERIC); 
print_r($test_array); 
echo "<br />"; 
rsort($test_array,SORT_STRING); 
print_r($test_array); 
?>

输出

Array ( [0] => 86 [1] => 5 [2] => 3 [3] => a [4] => 0 [5] => -5 ) 
Array ( [0] => 86 [1] => 5 [2] => 3 [3] => a [4] => 0 [5] => -5 ) 
Array ( [0] => a [1] => 86 [2] => 5 [3] => 3 [4] => 0 [5] => -5 )

asort() 函数

说明

asort() 函数对数组进行排序并保持索引关系。主要用于对那些单元顺序很重要的结合数组进行排序。可选的第二个参数包含了附加的排序标识。

如果成功则返回 TRUE,否则返回 FALSE。

语法

asort(array,sorttype)

参数

同sort()

注意

该值是 PHP 4.4.0 和 5.0.2 新加的。在 PHP 6 之前,使用了系统的区域设置,可以用 setlocale() 来改变。自 PHP 6 起,必须用 i18n_loc_set_default() 函数。

示例

<?php 
$test_array = array(5,"86",3,'a',0,-5); 
asort($test_array); 
print_r($test_array); 
echo "<br />"; 
asort($test_array,SORT_NUMERIC); 
print_r($test_array); 
echo "<br />"; 
asort($test_array,SORT_STRING); 
print_r($test_array); 
?>

输出

Array ( [5] => -5 [4] => 0 [3] => a [2] => 3 [0] => 5 [1] => 86 ) 
Array ( [5] => -5 [3] => a [4] => 0 [2] => 3 [0] => 5 [1] => 86 ) 
Array ( [5] => -5 [4] => 0 [2] => 3 [0] => 5 [1] => 86 [3] => a )

arsort() 函数

说明

arsort() 函数对数组进行逆向排序并保持索引关系。主要用于对那些单元顺序很重要的结合数组进行排序。

可选的第二个参数包含了附加的排序标识。

如果成功则返回 TRUE,否则返回 FALSE。

语法

arsort(array,sorttype)

参数

同sort()

注意

该值是 PHP 4.4.0 和 5.0.2 新加的。在 PHP 6 之前,使用了系统的区域设置,可以用 setlocale() 来改变。自 PHP 6 起,必须用 i18n_loc_set_default() 函数。

示例

$test_array = array(5,"86",3,'a',0,-5); 
arsort($test_array); 
print_r($test_array); 
echo "<br />"; 
arsort($test_array,SORT_NUMERIC); 
print_r($test_array); 
echo "<br />"; 
arsort($test_array,SORT_STRING); 
print_r($test_array);

输出

Array ( [5] => -5 [4] => 0 [3] => a [2] => 3 [0] => 5 [1] => 86 ) 
Array ( [5] => -5 [3] => a [4] => 0 [2] => 3 [0] => 5 [1] => 86 ) 
Array ( [5] => -5 [4] => 0 [2] => 3 [0] => 5 [1] => 86 [3] => a )

ksort() 函数

说明

ksort() 函数按照键名对数组排序,为数组值保留原来的键。可选的第二个参数包含附加的排序标志。

如果成功则返回 TRUE,否则返回 FALSE。

语法

ksort(array,sorttype)

参数

同sort()

注意

该值是 PHP 4.4.0 和 5.0.2 新加的。在 PHP 6 之前,使用了系统的区域设置,可以用 setlocale() 来改变。自 PHP 6 起,必须用 i18n_loc_set_default() 函数。

示例

<?php 
$test_array = array(5,"86",3,'a',0,-5); 
ksort($test_array); 
print_r($test_array); 
echo "<br />"; 
ksort($test_array,SORT_NUMERIC); 
print_r($test_array); 
echo "<br />"; 
ksort($test_array,SORT_STRING); 
print_r($test_array); 
?>

输出

Array ( [0] => 5 [1] => 86 [2] => 3 [3] => a [4] => 0 [5] => -5 ) 
Array ( [0] => 5 [1] => 86 [2] => 3 [3] => a [4] => 0 [5] => -5 ) 
Array ( [0] => 5 [1] => 86 [2] => 3 [3] => a [4] => 0 [5] => -5 )

krsort() 函数

说明

krsort() 函数将数组按照键逆向排序,为数组值保留原来的键。可选的第二个参数包含附加的排序标志。

如果成功则返回 TRUE,否则返回 FALSE。

语法

krsort(array,sorttype)

参数

同sort()

注意

该值是 PHP 4.4.0 和 5.0.2 新加的。在 PHP 6 之前,使用了系统的区域设置,可以用 setlocale() 来改变。自 PHP 6 起,必须用 i18n_loc_set_default() 函数。

示例

<?php 
$test_array = array(5,"86",3,'a',0,-5); 
krsort($test_array); 
print_r($test_array); 
echo "<br />"; 
krsort($test_array,SORT_NUMERIC); 
print_r($test_array); 
echo "<br />"; 
krsort($test_array,SORT_STRING); 
print_r($test_array); 
?>

输出

Array ( [5] => -5 [4] => 0 [3] => a [2] => 3 [1] => 86 [0] => 5 ) 
Array ( [5] => -5 [4] => 0 [3] => a [2] => 3 [1] => 86 [0] => 5 ) 
Array ( [5] => -5 [4] => 0 [3] => a [2] => 3 [1] => 86 [0] => 5 )

natsort() 函数

说明

natsort() 函数用自然顺序算法对给定数组中的元素排序。

natsort() 函数实现了“自然排序”,即数字从 1 到 9 的排序方法,字母从 a 到 z 的排序方法,短者优先。数组的索引与单元值保持关联。

如果成功,则该函数返回 TRUE,否则返回 FALSE。

语法

natsort(array)

参数

参数 描述
array 必需。规定要进行排序的数组。

示例

<?php 
$test_array = array(5,"86",3,'a',0,-5); 
natsort($test_array); 
print_r($test_array); 
echo "<br />"; 
natsort($test_array); 
print_r($test_array); 
echo "<br />"; 
natsort($test_array); 
print_r($test_array); 
?>

输出

Array ( [5] => -5 [4] => 0 [2] => 3 [0] => 5 [1] => 86 [3] => a ) 
Array ( [5] => -5 [4] => 0 [2] => 3 [0] => 5 [1] => 86 [3] => a ) 
Array ( [5] => -5 [4] => 0 [2] => 3 [0] => 5 [1] => 86 [3] => a )

natsort() 函数

说明

natcasesort() 函数用不区分大小写的自然顺序算法对给定数组中的元素排序。

natcasesort() 函数实现了“自然排序”,即数字从 1 到 9 的排序方法,字母从 a 到 z 的排序方法,短者优先,该函数不区分大小写。数组的索引与单元值保持关联。

如果成功,则该函数返回 TRUE,否则返回 FALSE。

语法

natcasesort(array)

参数

参数 描述
array 必需。规定要进行排序的数组。

示例

<?php 
$test_array = array(5,"86",3,'a',0,-5); 
natcasesort($test_array); 
print_r($test_array); 
echo "<br />"; 
natcasesort($test_array); 
print_r($test_array); 
echo "<br />"; 
natcasesort($test_array); 
print_r($test_array); 
?>

输出

Array ( [5] => -5 [4] => 0 [2] => 3 [0] => 5 [1] => 86 [3] => a ) 
Array ( [5] => -5 [4] => 0 [2] => 3 [0] => 5 [1] => 86 [3] => a ) 
Array ( [5] => -5 [4] => 0 [2] => 3 [0] => 5 [1] => 86 [3] => a )

 

最后编辑:
作者:码农一号
这个作者貌似有点懒,什么都没有留下。
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

留下一个回复

你的email不会被公开。

*