根据值排序
若是你想使用值排序来取代关键字排序的话,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 )