数组的创建
1 '.$arr[$i];11 }12 //第二种方法13 $b=array(1,23,20,43);14 15 for($i=0;$i
本文共 4552 字,大约阅读时间需要 15 分钟。
数组的创建
1 '.$arr[$i];11 }12 //第二种方法13 $b=array(1,23,20,43);14 15 for($i=0;$i
数组的遍历和一些细节。
还可以通过数组运算符对多个数组进行操作,详细参看php手册。
1 'hello',22,33); 4 //echo $arr[1];---->>报错 5 //echo $arr[3];---->>22 6 //echo $arr[5];---->>报错 7 8 //2.重新赋值--------用后定义的值覆盖即可 9 $abb=array(1=>4,32,23);10 $abb[1]=40;11 echo $abb[1];12 13 //3.布尔值作为下标14 $acc[true]='wuhan';15 $acc[false]='hubei';16 $acc[null]='china';17 $acc[12.3]='earth';18 19 echo $acc[1].'';20 echo $acc[0].'';21 echo $acc[null].'';22 echo $acc[''].'';23 24 echo $acc[12];25 echo $acc[12.3];26 27 //打印数组的详细信息28 print_r($acc);29 var_dump($acc);30 31 //4.动态改变数组32 $add=array(2,3);33 $add[4]=34;34 echo $add[4];//会把两者之间空余的元素忽略,后面添加的元素追加到前面的地址上35 36 //5.数组引用的陷阱---会把addme解析为常量,提示notice,所以把addme定义为一个字符串就不会出错37 const addme='QQ';38 $e[addme]='me';39 echo $e[addme];40 41 //6.is_array----是则返回1,不是则返回空42 $f=array(00,12);43 echo is_array($f);44 45 //拆分字符串explode46 $g='1 2 3 4 5';47 $h='1-2-3-4-5';48 $gg=explode(" ",$g);49 $hh=explode("-",$h);50 print_r($gg);51 print_r($hh);52 53 //使用4种方式遍历数组54 //for55 $dd=array(20,30,40,50,60);56 57 for($i=0;$i'.$dd[$i];59 }60 //while61 $i=0;62 while($i '.$dd[$i];64 ++$i;65 //$i++;66 }67 //do..while68 $i=0;69 do{70 echo ''.$dd[$i];71 ++$i;72 }while($i $value){75 //echo $key=$value.' ';76 echo "$key=$value ";77 }78 ?>
排序算法-----1.冒泡算法(去年学c的时候老师详细讲解了冒泡法,也是最简单的排序算法,计算效率相对较低)
1 //bubble sort 2 $arr=array(20,-20,0,5,-49); 3 /*$temp=0; 4 for($i=0;$i$arr[$j+1]){ 7 $temp=$arr[$j]; 8 $arr[$j]=$arr[$j+1]; 9 $arr[$j+1]=$temp;10 }11 }12 }13 print_r($arr);*/14 //封装sort函数------形参加上地址符15 function bubbleSort(&$arr){16 $temp=0;17 for($i=0;$i $arr[$j+1]){20 $temp=$arr[$j];21 $arr[$j]=$arr[$j+1];22 $arr[$j+1]=$temp;23 }24 }25 }26 }27 bubbleSort($arr);
排序算法-----2.选择排序
1 //selectSort选择排序法 2 function selectSort(&$arr){ 3 4 for($i=0;$i$arr[$j]){10 $min=$arr[$j];11 $minIndex=$j;12 }13 }14 //交换值15 $temp=$arr[$i];16 $arr[$i]=$arr[$minIndex];17 $arr[$minIndex]=$temp;18 }19 }20 selectSort($arr);
排序算法-----3.插入排序
1 //insertSort插入排序 2 function insertSort(&$arr){ 3 for($i=1;$i=0&&$insertValue<$arr[$insertIndex]){ 7 $arr[$insertIndex+1]=$arr[$insertIndex]; 8 $insertIndex--; 9 }10 $arr[$insertIndex+1]=$insertValue;11 }12 }13 insertSort($arr);14 print_r($arr);15 var_dump($arr);
排序算法-----4.快速排序---各种语言的排序算法思想大同小异。php的快速排序算法算简单的,java更难一点。
1 function quickSort($arr) { 2 if (count($arr) > 1) { 3 $k = $arr[0]; 4 $x = array(); 5 $y = array(); 6 $_size = count($arr); 7 for ($i=1; $i<$_size; $i++) { 8 if ($arr[$i] <= $k) { 9 $x[] = $arr[$i];10 } else {11 $y[] = $arr[$i];12 }13 }14 $x = quickSort($x);15 $y = quickSort($y);16 return array_merge($x, array($k), $y);17 } else {18 return $arr;19 }20 }
JS实现快速排序-----
1 var quickSort = function(arr) { 2 if (arr.length <= 1) { return arr; } 3 var pivotIndex = Math.floor(arr.length / 2); 4 var pivot = arr.splice(pivotIndex, 1)[0];//代表中位数 5 var left = []; 6 var right = []; 7 for (var i = 0; i < arr.length; i++){ 8 if (arr[i] < pivot) { 9 left.push(arr[i]);10 } else {11 right.push(arr[i]);12 }13 }14 return quickSort(left).concat([pivot], quickSort(right));15 };
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。-----
slice()选取数组元素。返回一个新的数组,包含从 start 到 end (不包括end元素)的 arrayObject 中的元素。
concat() 方法用于连接两个或多个数组。-----
转载于:https://www.cnblogs.com/paxster/p/3548599.html