/**数组的常用函数*1.数组的键/值操作函数*array_values()—返回数组中所有的值*array_keys()返回数组中部分的或所有的键名*in_array()检查数组中是否存在某个值如果找到needle则返回TRUE,否则返回FALSE。*array_search—在数组中搜索给定的值,如果成功则返回相应的键名*array_key_exists—检查给定的键名或索引是否存在于数组中*array_flip—交换数组中的键和值*array_reverse—返回一个单元顺序相反的数组*2.数组中统计数组元素*count—计算数组中的单元数目或对象中的属性个数*array_count_values—统计数组中所有的值出现的次数返回一个关联数组,用input数组中的值作为键名,该值在数组中出现的次数作为值。*array_unique—移除数组中重复的值Returnsthefilteredarray.*3.使用回调函数处理数组的函数*array_filter—用回调函数过滤数组中的单元*array_walk—使用用户自定义函数对数组中的每个元素做回调处理*array_map—将回调函数作用到给定数组的单元上**///array_values—返回数组中所有的值$arr=['王小明','津沙港湾','小香港'];$a=array_values($arr);var_dump($a);$lamp=array('OS'=>'Linux','WebServer'=>'Apache','DB'=>'MySQL','Language'=>'PHP','lang'=>'PHP','num1'=>10,'num2'=>'10',//'girl'=>null);var_dump(array_values($lamp));list($OS,$WebServer,$DB,$Language)=array_values($lamp);echo$OS;$b=array_keys($lamp);//返回所有的键名$c=array_keys($lamp,'Apache');//返回Apache键名$d=array_keys($lamp,10,true);//返10加true表示10的值和类型都要相同。===必须是整型var_dump($b);var_dump($d);//in_arrayif(in_array('MySQL',$lamp)){echo'在数组中';}else{echo'不在数组中';}//array_search—在数组中搜索给定的值,如果成功则返回相应的键名var_dump(array_search('MySQL',$lamp));//array_key_exists—检查给定的键名或索引是否存在于数组中if(array_key_exists('DB',$lamp)){echo'在数组中';}else{echo'不在数组中';}//array_key_exists判断数组的值为null返回trueif(array_key_exists('girl',$lamp)){echo'在数组中';}else{echo'不在数组中';}//isset()判断数组的值为null返回falseif(isset($lamp['girl'],$lamp)){echo'在数组中';}else{echo'不在数组中';}//array_flip—交换数组中的键和值var_dump(array_flip($lamp));//array_reverse—返回一个单元顺序相反的数组var_dump(array_reverse($lamp));//如果设置为TRUE会保留数字的键。非数字的键则不受这个设置的影响,总是会被保留。$arr1=[1=>1,3=>3,5=>4];var_dump(array_reverse($arr1,true));============================================================================//count—计算数组中的单元数目或对象中的属性个数$str='Iamyangyihai';var_dump(count($str));//int1$str1=[1=>[1,2,3],2=>[2,4,6]];echocount($str1);//2默认统计外层数组echocount($str1,1);//8如果可选的mode参数设为COUNT_RECURSIVE(或1),count()将递归地对数组计数外层加内层$str2=[1,1,2,2,2,3,5,7];//array_count_values—统计数组中所有的值出现的次数返回一个关联数组,用input数组中的值作为键名,该值在数组中出现的次数作为值。var_dump(array_count_values($str2));//array_unique—移除数组中重复的值Returnsthefilteredarray.var_dump(array_unique($str2));//array_filter—用回调函数过滤数组中的单元$arr=[1,2,4,null,"",-5-4-2,-4,3,false,true,3,4,'a'];var_dump($arr);var_dump(array_filter($arr));functioncalltest($a){if($a>=0){returntrue;}else{returnfalse;}}functionodd($var){return($var&1);//奇数跟1取与操作}$arr1=[1,2,3,4,5,6,7,8,9];//var_dump(array_filter($arr,'calltest'));var_dump(array_filter($arr1,'odd'));var_dump(array_values(array_filter($arr1,function($var){return(!($var&1));//偶数})));//array_walk—使用用户自定义函数对数组中的每个元素做回调处理functionwalkcall(&$var){echo$var=$var*$var.'';}//典型情况下funcname接受两个参数。array参数的值作为第一个,键名作为第二个。functionmyfun($value,$key){echo"{$key}===>{$value}";}array_walk($arr1,'walkcall');array_walk($arr1,'myfun');//使用匿名函数array_walk($arr1,function(&$value,$key){$value=$value+1;});array_walk($arr1,function(&$value,$key,$str){$value=$value+1;echo$key.$str.$value;},'————');//var_dump($arr1);functioncube($var){return$var*$var*$var;}$arr2=[1,2,3,4,5,6,7,8,9];var_dump(array_map('cube',$arr2));$arr3=[1,2,3,4];$arr4=['one','two','three','four'];functionmapcall($a,$b){echo"$a-----$b<br/>";}$rarr=array_map('mapcall',$arr3,$arr4);var_dump($rarr);$rarr1=array_map(null,$arr3,$arr4);var_dump($rarr1);