一。数组的排序函数
1.sort()
2.rsort()
3.usort()
4.asort()
5.arsort()
6.uasort()
7.ksort()
8.uksort()
9.natsort()
10.natcasesort()
11.array_multisort()
(1).简单的数组排序
sort() rsort()
$data=array(5,7,3,6,9);
sort($data);//由小到达
print_r($data);
rsort($data);//由大到小
print_r($data);
(2).根据键名对数组进行排序
ksort() krsort()
$data=array(5=>"five",8=>"eight",7=>"seven");
ksort($data);
print_r($data);
krsort($data);
print_r($data);
(3).根据元素的值对数组排序
asort() arsort()//与简单的排序区别在于保留键名与值的 关系
$data=array(5=>"five",8=>"eight",7=>"seven");
asort($data);
print_r($data);
arsort($data);
print_r($data);
(4).根据“自然数排序”对数组进行排序
natsort ()//区分大小写
natcasesort() //不去分大小写
$data=array("file1.txt","file11.txt","file2.txt","file22.txt");
sort($data);
print_r($data);
echo '
';
natsort($data);
print_r($data);
echo '
';
natcasesort($data);
print_r($data);
echo'
';
(5).根据用户自定义规则对数组排序
usort() uasort() uksort()
$data=array("Linux","Apache","Mysql","Php");
usort($data,"sortbylen");
function sortbylen ($one,$two){
if(strlen($one)==strlen($two))
return 0;
else
return (strlen($one)>strlen($two))?1:-1;//如果>变<则顺序颠倒
}
print_r($data);
echo'
';
(6).多维数组的排序
array_multisort()
二。拆分、合并、分解、接合的数组函数
(1).array_slice()//根据条件返回一部分数组
$lamp=array("Linux","Apache","Mysql","Php");
print_r(array_slice($lamp,1,2));//从【1】元素开始取,取两个
print_r(array_slice($lamp,-2,1));//从后面第二个开始取,取一个
print_r(array_slice($lamp,1,2,true));//保留原有下标
//如果是关联数组,则保留键名
(2).array_splice()//选择数组中的一部分删除他们,如果存在第四个参数,则被第四个参数取代
(3).array_combine()//通过合并两个数组来创建一个新数组
$a=array("os","web","data","lang");
$b=array("linux","apache","mysql","php");
print_r(array_combine($a,$b));
echo '
';
print_r(array_combine($b,$a));
echo '
'; //两个输出结果的键与值相反
(4).array_merge()//把多个数组合并成一个数组
$a=array("os","web","data","lang");
$b=array("linux","apache","mysql","php");
$c=$a+$b;
print_r($c);//第一个会把第二个覆盖掉
$d=array_merge($a,$b);
print_r($d);
(5).array_intersect()//求交际
$a=array("os","web","data","lang",1,2,3,4,5,6);
$b=array("linux","apache","mysql","php",1,2,3,5);
$c=array_intersect($a,$b);
print_r($c); //输出两个数组相同的部分,键名一第一个为准
(6).array_diff()//去掉相同的
$a=array("os","web","data","lang",1,2,3,4,5,6);
$b=array("linux","apache","mysql","php",1,2,3,5);
$c=array_diff($c);
print_r($c);//输出第一个与第二个的差集
三。数组与数据结构的函数
(1).使用数组实现堆栈功能
$a=array("os","web","data","lang");
$a[]="one";
$a[]="two";//入栈
array_push($a,"three");
array_push($a,"four","five");//也是入栈,但没上面的效率高
$value=array_pop($a);
$value=array_pop($a);
print_r($a);
echo '
';
echo $value;
(2).用数组实现队列功能
$a=array("os","web","data","lang");
array_unshift($a,1);//从对尾入队列
print_r($a);echo '
';
array_shift($a);//从对尾删除元素
print_r($a);echo '
';
unset($a[3]);//删除任意位置的数组元素
print_r($a);
四。其他与数据操作有关的函数
array_rand();
shuffle();
array_sum();
range();
$arr=array(1,2,3,4,5,6);
echo $arr[array_rand($arr)]; //从数组中随机选择一个元素的下标
print_r($arr);echo'
';
shuffle($arr);
print_r($arr);echo'
';//随机排列数组中的元素
echo array_sum($arr);//数组所有元素的和如果有浮点数则返回浮点值,如果都是整数则返回整数
$a=range(0,5,1);//第一个参数是最小值,第二个参数是最大值,第三个参数是步长(默认为1)
print_r($a);