php数组及其相关处理函数
/** * 数组 * 1.数组中可以存放不同类型的数据 * 2.数组可以进行扩充 * * 数组的分类 * 1.索引数组:数组的索引值是整数,0开始 * 2.关联数组:数组以字符串作为索引值,相当于别名 * */ $arr[0]=133; $arr[]=233; $arr[]=333; $arr[2]=433; $arr[1]=533; $arr[]=633; $arr[]=733; $arr[9]=733; print_r($arr); echo"<br>"; $person["name"]="sid"; $person["age"]="23"; $person["sex"]="man"; print_r($person); echo"<br>"; $arr = array("age"=>1,2,"name"=>"one",3.333); print_r($arr); echo"<br>"; $arr["name"]="sid"; print_r($arr); echo"<br>"; /** * 数组的遍历 * 1.for只适合索引数组(弱类型,如果中间是空的也无法遍历) * 2.foreach * 3.while()的list和each方法 * each方法只能取一次;循环第二时,已经取到最后了 * list方法将数组复制给list方法中的参数(适合索引数组) */ for($i=0;$i<count($arr);$i++){} foreach($arras$value){ echo$value."<br>"; } foreach($arras$key=>$value){ echo$value."下标为key<br>"; } $arr = array(array(1,2,3,4,5,55),array("one","two"),array("a",1,"b",2)); foreach($arras$key=>$value){ foreach($valueas$key=>$value){ echo$value."下标为key<br>"; } } $arr = array("age"=>1,2,"name"=>"one",3.333); //传入数组,返回新数组;1和value对应值;0和key对应下标 while($a=each($arr)){ echo"下标:".$a[0]."---".$a["key"]."<br>"; echo"值:".$a[1]."---".$a["value"]."<br>"; } list($a,$b,$c)=$arr; echo$a."<br>"; echo$b."<br>"; echo$c."<br>"; $str = "uselib_one"; list($aa,$one) = explode("_", $str); echo$one."<br>"; list($key,$value) = each($arr); echo$key."<br>"; echo$value."<br>"; /** * 数组的处理函数 * 1、current($arr)得到目前指针位置的内容 * 2、key($arr)得到当前位置的下标值 * 3、next($arr)下移动一位 * 4、prev($arr)前一个 * 5、end($arr)结尾 * 6、reset($arr)重新回到初始位置 * 7、count($arr)获取数组元素个数 * 8、sizeof($arr)获取数组长度 * 9、array_change_key_case($arr,CASE_UPPER/CASE_LOWER)将下标的英文字母传唤成大小写 * 10、array_chunk($arr,int size,boolean)分解数组每个小数组为size大小;true表示保留原有下标 * 11、array_count_values($arr)用来计算目标数组中各值出现的次数 * 12、array_fill(star,size,resourse);填满索引中指定位置的段内容 * 13、array_filter($arr,function)过滤目标数组中的内容,只返回返回true的数据 * array_map(function,$arr)用来处理数组 * array_walk(function,$arr)用来处理数组 * 14、array_flip($arr)将目标数组中的键与值反向;后转换的键会将前面相同的键覆盖掉 * 15、arra_sum计算目标数组中所以元素的总和 * 16、array_unique($arr)去除重复值 */ $a=current($arr); var_dump($a); echo"<br>"; $a=key($arr); var_dump($a); echo"<br>"; $uparr = array_change_key_case($arr,CASE_UPPER); var_dump($uparr); echo"<br>"; $uparr = array_chunk($arr, 1,TRUE); var_dump($uparr); echo"<br>"; $uparr = array_count_values($arr); var_dump($uparr); echo"<br>"; array_fill(2,12,"asdfa"); var_dump($uparr); echo"<br>"; $arr = array("age"=>1,-2,"name"=>"one",3.333); //字符串默认当成0 functionfun1($value){ if($value>0) return true; else return false; } $new = array_filter($arr,fun1); var_dump($new); echo"<br>"; $arr = array("age"=>1,-2,"name"=>8,3.333,2,2,3.333); //字符串默认当成0 functionfun2($value){ return$value*$value; } $new = array_map(fun2,$arr); var_dump($new); echo"<br>"; var_dump(array_flip($arr)); echo"<br>"; var_dump(array_unique($arr)); echo"<br>"; /** * 数组的高级函数 * 1、array_values()获取数值,并将key重新数字顺序 * 2、array_keys()返回数组的所有下标 * 3、in_array()查找某值是否在数组里面,返回boolean * 第一个是元素, * 第二个是数组, * 第三个是是否按数据类型进行检索 * 4、array_search()查找某值是否在数组里面,返回对应的键名;不存在返回false * 5、array_key_exists()判断下标是否存在数组中,返回boolean * 6、extract()数组变量的转换(关联数组) * 7、compact()变量转换成数组(变量必须事先存在) * 8、数组与栈(后进先出) * array_push()压入数组末尾;返回数组的长度 * array_pop()弹出数组最后一个元素 * 9、数组与队列(先进先出) * array_shift()在数组的开始弹出数据 * array_unshift()在队列的开始加入元素 * 10、排序函数 * 忽略键名的排序 * sort()、rsort()、usort() * 保留键名的排序 * asort()、arsort()、uasort() * 根据键名进行排序 * ksort()、krsort()、uksort() * 自然数排序 * natsort()、natcasesort() * 11、数组中计算函数 * array_sum()元素之和 * array_merge()合并数组函数 * array_merge_recursive() * array_diff()数组的差值(完全删除相同的元素);只返回第一个数组的元素 * array_diff_assoc() * array_intersect()数组的交集(完全删除不同的元素);只返回第一个数组的元素 * array_intersect_asseoc() * 12、 * 13、 * 14、 */ $arr = array("one"=>1,"two"=>"2",10=>"abc",123=>"100"); var_dump(array_values($arr)); echo"<br>"; var_dump(in_array(100,$arr)); var_dump(in_array(100,$arr,true)); echo"<br>"; extract($arr); var_dump($one); var_dump($two); echo"<br>"; $two="sdf"; $one="123"; $three="sdfw2"; $arr = compact("one","two","three"); var_dump($arr); echo"<br>"; array_push($arr,"one","two","three"); var_dump($arr); echo"<br>"; $val = array_pop($arr); var_dump($val); echo "<br>";