用php对任意数组排序,PHP对数组进行排序

在用PHP进行WEB应用开发中我们经常需要对数组进行排序,强大的PHP也内置了很多方便我们排序的函数。让我们来看一下。

对值数组进行排序sort/rsort

这两个函数基本上是一样的,只是一个是正序,一个是反序。下面其它的也是成对的,就不再说明了。

这组函数只对数组的值进行排序,所有的KEY都会被丢弃掉。所以这组函数适合对值数组进行排序。

关于sort_flags这个参数,这里说明一下。下面如果出现sort_flag也是一样的用法。

SORT_REGULAR - 正常比较单元(不改变类型)

SORT_NUMERIC - 单元被作为数字来比较

SORT_STRING - 单元被作为字符串来比较

SORT_LOCALE_STRING - 根据当前的 locale 设置来把单元当作字符串比较。PHP 4.4.0 和 5.0.2 新加

下面给出例子

$fruits = array("lemon", "orange", "banana", "apple");

sort($fruits);

foreach ($fruits as $key => $val) {

echo "fruits[".$key."] = " . $val . "\n";

}

输出

fruits[0] = apple

fruits[1] = banana

fruits[2] = lemon

fruits[3] = orange

对关联数组的值进行排序asort/arsort

这组函数和上面的一组函相似,但他们适合对关联数组进行排序,也就是说排序之后原来的键和值还是会保持原来的关联性。

$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");

asort($fruits);

foreach ($fruits as $key => $val) {

echo "$key = $val\n";

}

输出

c = apple

b = banana

d = lemon

a = orange

对关联数组的key进行排序ksort/krsort

这组数组会对关联数组的key进行排序,排好之后key和value还是保持原来的关联。

$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");

ksort($fruits);

foreach ($fruits as $key => $val) {

echo "$key = $val\n";

}

输出

a = orange

b = banana

c = apple

d = lemon

自然排序

这个函数和asort一样会保持数据的key和value的关联性,但他的排序方法是自然排序,就是和人通常对字母数字进行排序时的方法一样。下面给出一个例子,比较一下大家就明白了。

$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

sort($array1);

echo "Standard sorting\n";

print_r($array1);

natsort($array2);

echo "\nNatural order sorting\n";

print_r($array2);

输出

Standard sorting

Array

(

[0] => img1.png

[1] => img10.png

[2] => img12.png

[3] => img2.png

)

Natural order sorting

Array

(

[3] => img1.png

[2] => img2.png

[1] => img10.png

[0] => img12.png

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值