PHP下对数组进行排序的函数

简单排序
首先,让咱们来看看最简单的状况:将一个数组元素从低到高进行简单排序,这个函数既能够按数字大小排列也能够按字母顺序排列。PHP的sort()函数实现了这个功能,如Listing A所示:
Listing A php

<?php
$data = array(5,8,1,7,2);
sort($data);
print_r($data);
?>


输出结果以下所示: 算法

Array ([0] => 1
[1] => 2
[2] => 5
[3] => 7
[4] => 8
 
Rsort()函数对数组元素进行从高到低的倒排,一样能够按数字大小排列也能够按字母顺序排列。
Listing B给咱们展现了它的一个例子:
Listing B
复制代码 代码以下:

<?php $data = array(5,8,1,7,2);rsort($data); print_r($data);
?>

它的输出结果以下:
复制代码 代码以下:

Array ([0] => 8
[1] => 7
[2] => 5
[3] => 2
[4] => 1
 
根据关键字排序
当咱们使用数组的时候,常常根据关键字对数组从新排序,从高到低。 Ksort()函数就是根据关键字进行排序的函数,同时,它在排序的过程当中会保持关键字的相关性。Listing C就是一个例子:
Listing C
复制代码 代码以下:

<?php $data = array(“US” => “United States”, “IN” => “India”, “DE” => “Germany”, “ES” => “Spain”);ksort($data); print_r($data);
?>

它的输出结果以下:
复制代码 代码以下:

Array ([DE] => Germany
[ES] => Spain
[IN] => India
[US] => United States
)

Krsort()函数是根据关键字对数组进行倒排,Listing D就是这样的例子:
Listing D
复制代码 代码以下:

<?php $data = array(“US” => “United States”, “IN” => “India”, “DE” => “Germany”, “ES” => “Spain”);krsort($data); print_r($data);
?>

它的输出结果以下:
复制代码 代码以下:

Array ([US] => United States
[IN] => India
[ES] => Spain
[DE] => Germany
 
根据值排序
若是你想使用值排序来取代关键字排序的话,PHP也能知足你的要求。你只要使用 asort()函数来代替先前提到的ksort()函数就能够了。如Listing E所示:
Listing E
复制代码 代码以下:

<?php $data = array(“US” => “United States”, “IN” => “India”, “DE” => “Germany”, “ES” => “Spain”);asort($data); print_r($data);
?>

下面就是它的输出结果。请注意这个结果与上面使用ksort()函数所获得的结果的不一样——在这两种状况中,都是按字母顺序进行排序的,可是它们是根据数组的不一样字段进行排序的。
同时,请注意关键字-值之间的联系会始终保持;它只是关键字-值对排序后的一种方式,排序并不会改变它们的对应关系。
Array ([DE] => Germany
[IN] => India
[ES] => Spain
[US] => United States
)
如今 ,你确定能猜到这种排序也能够进行倒排,它使用arsort()函数完成这个功能。Listing F就是一个例子:
Listing F
复制代码 代码以下:

<?php $data = array(“US” => “United States”, “IN” => “India”, “DE” => “Germany”, “ES” => “Spain”);arsort($data); print_r($data);
?>

下面是它的输出结果,根据值按字母表顺序进行倒排。将下面的结果与用krsort()函数进行倒排后生成的结果进行比较,就能很容易明白二者的不一样了。
复制代码 代码以下:

Array ([US] => United States
[ES] => Spain
[IN] => India
[DE] => Germany
 
天然语言排序
PHP有一个很是独特的排序方式,这种方式使用认知而不是使用计算规则。这种特性称为天然语言排序,当建立模糊逻辑应用软件的时候这种排序方式很是有用。下面你们能够来看看它的一个简单例子,如Listing G所示:
Listing G
复制代码 代码以下:

<?php $data = array(“book-1″, “book-10″, “book-100″, “book-5″); sort($data);print_r($data);
natsort($data); print_r($data);?>

它的输出结果以下:
复制代码 代码以下:

Array ([0] => book-1
[1] => book-10
[2] => book-100
[3] => book-5
)
Array
(
[0] => book-1
[3] => book-5
[1] => book-10
[2] => book-100
)

它们的不一样已经很清楚了:第二个排序结果更直观,更“人性化”,然而第一个则更符合算法规则,更具“计算机”特色。 
 
天然语言能进行倒排吗?答案是确定的! 只要对natsort()的结果使用array_reverse()函数就能够了,Listing H就是一个简单例子:
Listing H
复制代码 代码以下:

<?php $data = array(“book-1″, “book-10″, “book-100″, “book-5″);natsort($data); print_r(array_reverse($data));
?>

下面是它的输出结果:
复制代码 代码以下:
Array ([0] => book-100 [1] => book-10 [2] => book-5 [3] => book-1 ) 
相关文章
相关标签/搜索