php中数组排序

1:sort与rsort

sort为按照值来进行升序排序

rsort为按照值来进行降序排序

这两个函数会忽略掉键,将函数变成一个数字索引数组

*这两个函数最好只用于数字的排序,如果用于字符串的排序会产生不同的结果

<?php

$array = array("file1.text","file22.text","file11.text","file2.text");
sort($array);
echo "<pre>";
print_r($array);
echo "</pre>";
/*
Array
(
    [0] => file1.text
    [1] => file11.text
    [2] => file2.text
    [3] => file22.text
)//得出的结果与人认知的不同
*/
?>

2:natsort//自然排序法排序

使用此函数进行排序,排序出来的顺序就与人的认知的相同

<?php

$array = array("file1.text","file22.text","file11.text","file2.text");
natsort($array);
echo "<pre>";
print_r($array);
echo "</pre>";
/*
Array
(
    [0] => file1.text
    [3] => file2.text
    [2] => file11.text
    [1] => file22.text
)*/
?>


3:ksort与krsort

ksort为按照键来进行升序排序

krsort为按照键来进行降序排序

4:asort与arsort

asort为按照值来进行升序排序

arsort为按照值来进行降序排序

这两个函数不会忽略掉键,将函数变成一个数字索引数组


5:usort($array,func)

根据用户自定义函数来进行对数组的排序,与as3中的差不多

<?php

$array = array("100","1000","1","10000","200");
usort($array,'sortLen');
function sortLen($a,$b)
{
	if(strlen($a) == strlen($b))
	{
		return 0;//0代表位置不变
	}else
	{
		return strlen($a) > strlen($b) ? -1:1;//-1代表元素往前移,1代表元素往后移
	}
}
echo "<pre>";
print_r($array);
echo "</pre>";
/*
Array
(
    [0] => 10000
    [1] => 1000
    [2] => 200
    [3] => 100
    [4] => 1
)*/
?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值