1·数组排序
键排序
krsort()和ksort()
krsort()排序是对数组按照键名降序排序
ksort()排序是对数组按照键名升序排序
键值排序
arsort()和asort()
arsort()排序是数组进行降序排序,并保持键值关系
asort()排序是数组升序排序,一样保持键值关系
二维数组,以某一维为依据进行排序:
2·提取部分数组
array_slice($arr,$start,$length)
从$arr中提取出来一部分,从$start开始到$length
3·将字符串拆分成数组;将数组拼接成字符串
explode($separator,$string)
拆分字符串;一句$seperator来拆分$string
implode()或者join()
合并数组为字符串
4·其他一些常用的函数
list($first,$second) = array('nihao','nuli')
这里将数组中的元素依次赋给list的参数;
上句代码是将 'nihao'赋给$first 'nuli'赋给 $second
【示例:
list($width, $height) = getimagesize($filename);
将获取到的图像信息赋值给独立的变量
】
in_array($neddle,$arr)
判断$neddle是否在$arr中存在
array_key_exists($key,$arr)
判断$arr中是否存在键值$key
array_merge($arr1,$arr2....)
将多个数组合并为一个数组;如果数组含有相同的字符串键名,则后面的会覆盖前面的值,如果是数字键名,则不会覆盖
array_unique($arr)
取出$arr中重复的值;返回一个不包含重复值的数组
array_walk($arr,callback functionname)
对数组中的所有元素应用指定的函数
快速排序
归并排序
选择排序
$arr --- 要排序的数组
键排序
krsort()和ksort()
krsort()排序是对数组按照键名降序排序
ksort()排序是对数组按照键名升序排序
键值排序
arsort()和asort()
arsort()排序是数组进行降序排序,并保持键值关系
asort()排序是数组升序排序,一样保持键值关系
二维数组,以某一维为依据进行排序:
2·提取部分数组
array_slice($arr,$start,$length)
从$arr中提取出来一部分,从$start开始到$length
3·将字符串拆分成数组;将数组拼接成字符串
explode($separator,$string)
拆分字符串;一句$seperator来拆分$string
implode()或者join()
合并数组为字符串
4·其他一些常用的函数
list($first,$second) = array('nihao','nuli')
这里将数组中的元素依次赋给list的参数;
上句代码是将 'nihao'赋给$first 'nuli'赋给 $second
【示例:
list($width, $height) = getimagesize($filename);
将获取到的图像信息赋值给独立的变量
】
in_array($neddle,$arr)
判断$neddle是否在$arr中存在
array_key_exists($key,$arr)
判断$arr中是否存在键值$key
array_merge($arr1,$arr2....)
将多个数组合并为一个数组;如果数组含有相同的字符串键名,则后面的会覆盖前面的值,如果是数字键名,则不会覆盖
array_unique($arr)
取出$arr中重复的值;返回一个不包含重复值的数组
array_walk($arr,callback functionname)
对数组中的所有元素应用指定的函数
快速排序
$arr --- 要排序的数组
$left --- 数组的左边界
$right --- 数组的右边界
function quikSort(&$arr,$left,$right){
if($left < $right){
$i=$left-1;
$x=$arr[$right];
for($j=$left;$j<$right;$j++){
if($arr[$j] <= $x){
$i++;
$temp=$arr[$i];
$arr[$i]=$arr[$j];
$arr[$j]=$temp;
}
}
$i++;
$temp=$arr[$i];
$arr[$i]=$arr[$right];
$arr[$right]=$temp;
quikSort($arr,$left,$i-1);
quikSort($arr,$i+1,$right);
}
}
归并排序
$arr --- 要排序的数组
$left --- 数组的左边界
$right --- 数组的右边界
function mergeSort(&$arr,$left,$right){
$temp=$left+(int)floor((double)($right-$left)/2);
if($temp!=$left){
mergeSort($left,$temp);
}
if($temp+1!=$right){
mergeSort($temp+1,$right);
}
$p=$temp;
$q=$right;
while($p>=$left || $q>$temp){
if($leftrr[$p]>$leftrr[$q] && $p>=$left && $q>$temp){
$leftrr_temp[$sign++]=$leftrr[$p--];
}else if($p>=$left && $q>$temp){
$leftrr_temp[$sign++]=$leftrr[$q--];
}else if($p<$left && $q>$temp){
$leftrr_temp[$sign++]=$leftrr[$q--];
}else if($p>=$left && $q<=$temp){
$leftrr_temp[$sign++]=$leftrr[$p--];
}
}
for($temp=$left;$temp<=$right;$temp++){
$leftrr[$temp]=$leftrr_temp[$sign-1];
$sign--;
}
}
选择排序
$arr --- 要排序的数组
function chooseSort(&$arr){
$length = count($arr);
for($now = $length-1;$now > 0 ;$now--){
$temp = $now;
for($point=0;$point<$now;$point++){
if($arr[$point] > $arr[$temp]){
$temp = $point;
}
}
if($temp != $now){
$swap = $arr[$now];
$arr[$now] = $arr[$temp];
$arr[$temp] = $swap;
}
}
}