首页 php二维数组排序方法

php二维数组排序方法

举报
开通vip

php二维数组排序方法php二维数组排序方法篇一:PHP多维数组排序PHP多维数组排序usort—使用用户自定义的比较函数对数组中的值进行排序说明boolusort(array&$array,callback$cmp_function)本函数将用用户自定义的比较函数对一个数组中的值进行排序。如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。比较函数必须在第一个参数被认为小于,等于或大于第二个参数时分别返回一个小于,等于或大于零的整数。注意:如果两个成员比较结果相同,则它们在排序后的数组中的顺序未经定义。到PHP4.0....

php二维数组排序方法
php二维数组排序方法篇一:PHP多维数组排序PHP多维数组排序usort—使用用户自定义的比较函数对数组中的值进行排序说明boolusort(array&$array,callback$cmp_function)本函数将用用户自定义的比较函数对一个数组中的值进行排序。如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。比较函数必须在第一个参数被认为小于,等于或大于第二个参数时分别返回一个小于,等于或大于零的整数。注意:如果两个成员比较结果相同,则它们在排序后的数组中的顺序未经定义。到PHP4.0.6之前,用户自定义函数将保留这些单元的原有顺序。但是由于在4.1.0中引进了新的排序算法,结果将不是这样了,因为对此没有一个有效的解决方案。注意:本函数为array中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。如果成功则返回TRUE,失败则返回FALSE。使用多维数组的usort()例子Java代码1.  2.functioncmp($a,$b)3.{4.returnstrcmp($a["fruit"],$b["fruit"]);5.}6.7.$fruits[0]["fruit"]="lemons";8.$fruits[1]["fruit"]="apples";9.$fruits[2]["fruit"]="grapes";10.11.usort($fruits,"cmp");12.13.while(list($key,$value)=each($fruits)){14.echo"/$fruits[$key]:".$value["fruit"]."/n";15.}16.?>[java]viewplaincopyprint?1.  2.functioncmp($a,$b)3.{4.returnstrcmp($a["fruit"],$b["fruit"]);5.}6.7.$fruits[0]["fruit"]="lemons";8.$fruits[1]["fruit"]="apples";9.$fruits[2]["fruit"]="grapes";10.11.usort($fruits,"cmp");12.13.while(list($key,$value)=each($fruits)){14.echo"/$fruits[$key]:".$value["fruit"]."/n";15.}16.?>当排序多维数组时,$a和$b包含到数组第一个索引的引用。上例将输出:$fruits[0]:apples$fruits[1]:grapes$fruits[2]:lemons篇二:php处理二维数组(去除重复项,排序,转换,去空白等)php处理二维数组(去除重复项,排序,转换,去空白等)1.PHP二维数组去重复项函数PHP数组去除重复项有个内置函数array_unique(),但是php的array_unique函数只适用于一维数组,对多维数组并不适用,以下提供一个二维数组的array_unique函数//二维数组去掉重复值functionunique_arr($array2D){foreach($array2Das$v){$v=join(",",$v);//降维,也可以用implode,将一维数组转换为用逗号连接的字符串$temp[]=$v;}$temp=array_unique($temp);//去掉重复的字符串,也就是重复的一维数组foreach($tempas$k=>$v){$temp[$k]=explode(",",$v);//再将拆开的数组重新组装}return$temp;}2.二维数组的排序方法一维数组排序方法:公用函数:functionprintr($arr){echo'  ';print_r($arr);echo'';}第一组:sort和rsort,按照PHP数组键值的顺序asc和逆序desc进行排序,同时破坏原来数组的索引关系——其实是删除索引之后重新建立从0开始的数字索引。$a=array('a'=>1,2);sort($a);printr($a);rsort($a);printr($a);/*Array([0]=>1[1]=>2)Array([0]=>2[1]=>1)*/第二组函数:asort和arsort,这两个函数就比较厉害一点了,只要他们可以保留数组原有的索引关系,把上例的sort和rsort分别用这两个函数替换一下$a=array('a'=>1,2);asort($a);printr($a);arsort($a);printr($a);/*Array([a]=>1[0]=>2)Array([0]=>2[a]=>1)*/第三组PHP数组排序函数:krsort和ksort这两个不同于以上两组,这两函数是对键名进行排序的.$a=array('a'=>1,2);ksort($a);printr($a);krsort($a);printr($a);/*Array([0]=>2[a]=>1)Array([a]=>1[0]=>2)*/通过自定义函数对PHP数组进行排序,有三个函数分别是:uasort通过自定义函数对PHP数组的键值进行排序,并且保留原来的索引关系。uksort通过自定义函数对PHP数组的键名进行排序,并且保留原来的索引关系。usort通过自定义函数对PHP数组的键值进行排序,并且删除原来的索引关系,从零开始建立新的索引。/***@packageBugFree*@version$Id:FunctionsMain.inc.php,v1.322005/09/2411:38:37wwccssExp$***Sortantwo-dimensionarraybysomeleveltwoitemsusearray_multisort()function.**sysSortArray($Array,"Key1","SORT_ASC","SORT_RETULAR","Key2"……)*@authorChunshengWang*@paramarray$ArrayDatathearraytosort.*@paramstring$KeyName1thefirstitemtosortby.*@paramstring$SortOrder1theordertosortby("SORT_ASC"|"SORT_DESC")*@paramstring$SortType1thesorttype("SORT_REGULAR"|"SORT_NUMERIC"|"SORT_STRING")*@returnarraysortedarray.*/functionsysSortArray($ArrayData,$KeyName1,$SortOrder1="SORT_ASC",$SortType1="SORT_REGULAR"){if(!is_array($ArrayData)){return$ArrayData;}//Getargsnumber.$ArgCount=func_num_args();//GetkeystosortbyandputthemtoSortRulearray.for($I=1;$I  {$Arg=func_get_arg($I);if(!eregi("SORT",$Arg)){$KeyNameList[]=$Arg;$SortRule[]='$'.$Arg;}else{$SortRule[]=$Arg;}}//Getthevaluesaccordingtothekeysandputthemtoarray.foreach($ArrayDataAS$Key=>$Info){foreach($KeyNameListAS$KeyName){${$KeyName}[$Key]=$Info[$KeyName];}}//Createtheevalstringandevalit.$EvalString='array_multisort('.join(",",$SortRule).',$ArrayData);';eval($EvalString);return$ArrayData;}实例://#################示例#################$arr=array(array('name'=>'学习','size'=>'1235','type'=>'jpe','time'=>'1921-11-13','class'=>'dd',),array('name'=>'中国功夫','size'=>'153','type'=>'jpe','time'=>'2005-11-13','class'=>'jj',),array('name'=>'编程','size'=>'35','type'=>'gif','time'=>'1997-11-13','class'=>'dd',),array('name'=>'中国功夫','size'=>'65','type'=>'jpe','time'=>'1925-02-13','class'=>'yy',篇三:PHP数组排序与查找详解(传智播客听课笔记韩顺平老师)?数组的排序这里我们介绍一些常用的排序方法,排序是一个程序员的基本功1.冒泡法2.选择排序法3.插入排序法4.快速排序法基本概念:是将一组数据,按照某个顺序排列的过程排序分两大类:1.内部排序法以上方法都属于内部排序法2.外部排序法因为数据量大,必须借助外部排序法?冒泡排序法//简单的排序$arr=array(0,5,-1);$temp=0;//我们要把数组从小到大排序for($i=0;$i  {for($j=0;$j  {if($arr[$j]>$arr[$j+1]){$temp=$arr[$j];$arr[$j]=$arr[$j+1];$arr[$j+1]=$temp;}}}print_r($arr);//封装成函数,利于以后使用functionbubbleSort($arr){$temp=0;//我们要把数组从小到大排序for($i=0;$i  {for($j=0;$j  {if($arr[$j]>$arr[$j+1]){$temp=$arr[$j];$arr[$j]=$arr[$j+1];$arr[$j+1]=$temp;}}}return$arr;}$arr=array(0,5,-1);$bubbleArray=bubbleSort($arr);print_r($bubbleArray);?>?选择排序法///选择排序法functionselectSort(&$arr){$temp=0;for($i=0;$i  {//假设$i是最小的数$minVal=$arr[$i];//记录我认为的最小数的下标$minIndex=$i;for($j=$i+1;$j  {?}}//说明我们认为的最小值不是最小值if($minVal>$arr[$j]){$minVal=$arr[$j];$minIndex=$j;}}//最后交换$temp=$arr[$i];$arr[$i]=$arr[$minIndex];$arr[$minIndex]=$temp;插入排序法//插入排序法functioninsertSort(&$arr){$newarr=array();$newarr[0]=$arr[0];//先默认下标为0这个数已经是有for($i=1;$i=0;$j--){if($newarr[$j]>$arr[$i]){$temp=$newarr[$j];$newarr[$j]=$arr[$i];$newarr[$j+1]=$temp;}else{$newarr[$j+1]=$arr[$i];break;}}}$arr=$newarr;}$arr=array(3,8,-10,10,4,7,9,4);insertSort($arr);print_r($arr);从效率上看:冒泡法《选择排序法《插入排序法?查找详解介绍两种方法:1.顺序查找对某个数组,按照顺序一个一个的比较,然后找到你要的数据案例:要求从一个数组$arr=array(46,90,900,-1)中查找一个数34,如果查找则输出该数的下标,如果找不到则输出查无此数$arr=array(46,90,900,0,-1,-1);functionsecrch(&$arr,$findVal){$flag=false;for($i=0;$i  {if($findVal==$arr[$i]){echo"找到了,下标为=$i";$flag=true;break;}}if(!$flag){echo"查询不到";}}secrch($arr,-1);2.二分查找法所谓二分查找,它有一个重要的前提,该数组本身已经是一个有序数组,如果该数组不是有序的,则必须先排序再查找//二分查找函数functionbinarySearch(&$arr,$findVal,$leftIndex,$rightIndex){if($rightIndex  {echo"找不到该数。";return;}$middleIndex=round(($leftIndex+$rightIndex)/2);if($findVal>$arr[$middleIndex]){binarySearch($arr,$findVal,$middleIndex+1,$rightIndex);}elseif($findVal  {binarySearch($arr,$findVal,$leftIndex,$middleIndex-1);}else{echo"找到这个数,下标是:$middleIndex";}}$arr=array(-1,-1,3,9,46,90,900);binarySearch($arr,900,0,count($arr)-1);继续组织两周一次的专题学习沙龙和互动式评课沙龙,结合教研活动的主题组织好教师学习、交流。听展示课的教师对听课内容进行精心、系统的评点,写成评课稿,在两周一次的互动式教学研讨沙龙中进行交流、探讨。与往年不同的是,在保证互动评课活动开展同时,不影响正常教学,本学期安排8次集体评课活动,其他评课通过qq群来交流、研讨。指导思想  以新一轮课程改革为抓手,更新教育理念,积极推进教学改革。努力实现教学创新,改革教学和学习方式,提高课堂教学效益,促进学校的内涵性发展。同时,以新课程理念为指导,在全面实施新课程过程中,加大教研、教改力度,深化教学方法和学习方式的研究。正确处理改革与发展、创新与质量的关系,积极探索符合新课程理念的生物教学自如化教学方法和自主化学习方式。本学期,我组将进一步确立以人为本的教育教学理论,把课程改革作为教学研究的中心工作,深入学习和研究新课程标准,积极、稳妥地实施和推进中学英语课程改革。以新课程理念指导教研工作,加强课程改革,紧紧地围绕新课程实施过程出现的问题,寻求解决问题的方法和途径。加强课题研究,积极支持和开展校本研究,提高教研质量,提升教师的研究水平和研究能力。加强教学常规建设和师资队伍建设,进一步提升我校英语教师的英语教研、教学水平和教学质量,为我校争创“三星”级 高中 高中语文新课程标准高中物理选修31全套教案高中英语研修观课报告高中物理学习方法和技巧高中数学说课稿范文 而发挥我组的力量。坚持以《基础教育课程改革纲要》为指导,认真学习贯彻课程改革精神,以贯彻实施基础教育课程改革为核心,以研究课堂教学为重点,以促进教师队伍建设为根本,以提高教学质量为目标,全面实施素质教育。高二的历史教学任务是要使学生在历史知识、历史学科能力和思想品德、情感、态度、价值观各方面得到全面培养锻炼和发展,为高三 年级 六年级体育公开课教案九年级家长会课件PPT下载六年级家长会PPT课件一年级上册汉语拼音练习题六年级上册道德与法治课件 的文科历史教学打下良好的基础,为高校输送有学习潜能和发展前途的合格高中毕业生打下良好基础。全班共40人,其中男生15人,女生25人。学生的数学基础较一般,多数学生能掌握所学内容,少部分学生由于反映要慢一些,学习方法死板,没有人进行辅导,加之缺乏学习的主动性,不能掌握学习的内容。能跟上课的学生,课上活泼,发言积极,上课专心听讲,完成作业认真,学习比较积极主动,课后也很自觉,当然与家长的监督分不开。部分学生解答问题的能力较强,不管遇到什么题,只要读了两次,就能找到方法,有的方法还相当的简捷。有的学生只能接受老师教给的方法,稍有一点变动的问题就处理不了。个别学生是老师  本册的教学内容:(1)混合运算和应用题;(2)整数和整数四则运算;(3)量的计量;(4)小数的意义和性质;(5)小数的加法和减法;(6)平行四边形和梯形③提出教学任务:在全面发展体能的基础上,进一步发展灵敏、力量,速度和有氧耐力,武德的培养;引导学生学会合理掌握练习与讨论的时间,了解实现目标时可能遇到的困难。在不断体验进步和成功的过程中,表现出适宜的自信心,形成勇于克服困难积极向上,乐观开朗的优良品质;认识现代社会所必需的合作和竞争意识,在武术学习过程中学会尊重和关心他人,将自身健康与社会需要相,表现出良好的体育道德品质,结合本身项目去了解一些武术名人并能对他们进行简单的评价;加强研究性的学习,去讨论与研究技能的实用性,加强同学之间的讨论交流的环节。:①总体目标:建立“健康第一”的理念,培养学生的健康意识和体魄,在必修田径教学的基础上进一步激发学生学习“初级长拳”、“剑”的兴趣,培养学生的终身体育意识,以学生身心健康发展为中心,重视学生主体地位的同时关注学生的个体差异与不同需求,确保每一个学生都受益,以及多样性和选择性的教学理念,结合学校的实际情况,设计本教学 工作计划 幼儿园家访工作计划关于小学学校工作计划班级工作计划中职财务部门工作计划下载关于学校后勤工作计划 ,以满足学生选项学生的需求,加深学生的运动体验和理解,保证学生在高一年田径必修基础上再加上“长拳”来引导男女生学习体育模块的积极性,再结合高二年的“剑”选项课的学习中修满2学分。加强学习“长拳”以及“剑”的基本套路,提升学习的的兴趣,提升学生本身的素质,特别是武德的培养。运动参与:a养成良好的练武的锻炼习惯。b根据科学锻炼的原则,制定并实施个人锻炼计划。c学会评价体育锻炼效果的主要方法。运动技能:a认识武术运动项目的价值,并关注国内外重大体赛事。b有目的的提高技术战术水平,并进一步加强技、战术的运用能力。c学习并掌握社会条件下活动的技能与方法,并掌握运动创伤时和紧急情况下的简易处理方法。身体健康:a能通过多种途径发展肌肉力量和耐力。b了解一些疾病等有关知识,并理解身体健康在学习、生活中和重要意义。c形成良好的生活方式与健康行为。心理健康:a自觉通过体育活动改变心理状态,并努力获得成功感。b在武术练习活动中表现出调节情绪的意愿与行为。c在具有实用技能练习中体验到战胜困难带来喜悦。社会适应:a在学习活动中表现出良好的体育道德与合作创新精神。b具有通过各种途径获取体育与健康方面知识和方法的能力。采用教师示范与讲解,学生讨论,练习,教师评价,再进行个别指导,后进行学生练习,最后进行展示与学生的综合评价相结合的方式方法,培养学生的良好的学习习惯、学习方法更好地完成教学任务,达到教学目标;实行培优扶中辅差,,采用学习小组的建立,加强学习小组的相互学习、相互讨论、相互研究的功能,提升学习的效率;加强多边学科的整合,特别是加强心理健康的教育,加强运动力学、运动医学等进行学习,以提升学生的运动自我保护意识与能力。  (1)课题研究:加强校本课程“剑”、“平山初级长拳”的开发与教学;做好“趣味奥运会进入校园”课题的开题准备。做为“青春期健康教育进入校园”课题组的成员,协助课题组进行研究,开展活动。(2)校本教研:加强校本课程的开发,加强体育备课组的教研能力,做为备课组长的我与其他老师加强讨论校本的研究与开发,本次校本开发重点放在“剑”、“初级长拳”、“花样篮球”三个项目上,有所侧重。(3)论文撰写:结合课题研究的内容进行撰写。(4)校际、教研组、备课组教研活动:做为晋江市兼职中学体育教研员及校际组成员,积极参加校际组开展的各项活动,加强提升在校际组的教研水平,做好兼职教研员的本职工作,协助教研员开展教研活动;积极参加教研组的各项活动,提升教研水平;做为备课组长的我,我计划是积极组织本组老师一起提高高中的课改力度与水平,集中老师的备课时间与讨论在备课过程中出现的一系列问题,针对选项会出现的问题进行沟通,加强学习过程的评价,协调选项内容的评价标准及认证过程。本册的重点:混合运算和应用题是本册的一个重点,这一册进一步学习三步式题的混合运算顺序,学习使用小括号,继续学习解答两步应用题的学习,进一步学习解答比较容易的三步应用题,使学生进一步理解和掌握复杂的数量关系,提高学生运用所学知识解决得意的实际问题的能力,并继续培养学生检验应用题的解答的技巧和习惯。第二单元整数和整数的四则运算,是在前三年半所学的有关内容的基础上,进行复习、概括,整理和提高。先把整数的认数范围扩展到千亿位,总结十进制计数法,然后对整数四则运算的意义,运算定律加以概括总结,这样就为学习小数,分数打下较好的基础。第四单元量的计量是在前面已学的基础上把所学的计量单位加于系统整理,一方面使学生所学的知识更加巩固,一方面使学生为学习把单名数或复名数改写成用小数表示的单名数做好准备。高考的文科综合能力测试更加强调考生对文科各学科整体知识的把握、综合分析问题的思维能力、为解决问题而迁移知识运用知识的能力。教师在教学中要体现多学科、多层次、多角度分析解决问题的通识教育理念。教师要认真学习和研究教材,转变教学观念,紧跟高考形势的发展,研究考试的变化,力争使高二的教学向高三教学的要求靠拢。按照《教学大纲》和《考试说明》的要求,认真完成高二阶段的单科复习工作。坚持学科教学为主,落实基础知识要到位,适当兼顾史地政三个学科的综合要求,培养提高学生学科内综合的能力。从学生的实际出发,落实基础,提高学科思维能力和辩证唯物主义、历史唯物主义的理论水平。本学期教研组重点加强对教师评课的指导,使教师的评课规范化,系统化,定期举行主题教学沙龙和“会诊式行动研究”,促进新教师的成长,加快我镇 小学 小学生如何制作手抄报课件柳垭小学关于三违自查自纠报告小学英语获奖优质说课课件小学足球课教案全集小学语文新课程标准测试题 语文教师队伍成长速度和小学语文教育质量的全面提高。结合区里的活动安排,开展各项有意义的学生活动,培养提高学生的语文素养,调动启发学生的内在学习动机。二、工作目标以课改为中心,组织教师学习语文课程标准,转变教学观念,深入课堂教学研究,激发学生主动探究意识,培养学生创新精神和实践能力,努力提高学生语文素养。2、进一步加强语文教师队伍建设,让“语文研究小组”,充分发挥学科带头人、骨干教师的示范作用,重视团队合作智慧、力量。开展“师徒结对”活动,以老带新,不断提高教师的业务素质。3、组织教师开展切实有效的说课沙龙、评课沙龙,提高教师说课能力,和评课能力,能够结合主题教研活动,对典型课例进行互动研讨,开展教例赏析活动。4、加强教研组集体备课,每周以段为单位组织一次集体备课,分析教材,赏析重点课文,进行文本细读,交流教学心得。让备课不再是走场,形式主义,而是真真实实为提高课堂效率服务,提高教师的素质服务。5、根据上学期制定的语文常规活动计划,开展形式多样的学习竞赛活动、过关活动,激发学生学习语文的兴趣,在自主活动中提高学生的综合实践能力,促进个性和谐发展。6、加强学习质量调查、检测工作,及时分析,寻找得失,确保完成各项教学指标。三、主要工作及具体措施(一)骨干教师示范、把关,当好“领头羊”。1、本学期,语文研究小组成员继续充分发挥学科带头人、骨干教师的示范作用,重视团队合作智慧、力量。教研组将围绕“探索实效性语文课堂教学模式”这个主题,深入开展精读课文教学有效性研讨活动。低段(1-2年级)则继续进行识字教学的有效性的探讨。分层、有序地开展教研活动,使教研活动更成熟、有效,切实提高我校语文老师的专业水平。2、开展“师徒结对”活动,以老带新,不断提高教师的业务素质。(二)年轻教师取经、学习,争取出成绩。1、为了提高教学质量,促成新教师迅速成长,1—5年教龄新教师每一学期上1堂模仿课和一堂校内研讨课。上模仿课的内容可以通过观看名师的关盘、视频或者教学实录等途径,根据个人教学需要,有选择性地进行局部模仿,从而使新教师形成个人的教学风格。加强理论学习,推进新课程改革。组织本组教师学习《普通高中英语课程标准》及课标解度,积极实践高中英语牛津教材,组织全组教师进一步学习、熟悉新教材的体系和特点,探索新教材的教学模式,组织好新教材的研究课活动,为全组教师提供交流、学习的平台和机会。加强课堂教学常规,提高课堂教学效率。强化落实教学常规和“礼嘉中学课堂教学十项要求”。做好集体备课和二备以及反思工作。在认真钻研教材的基础上,抓好上课、课后作业、辅导、评价等环节,从而有效地提高课堂教学效率。加强教学方法、手段和策略的研究,引导教师改进教学方法的同时,引导学生改进学习方法和学习策略。加强课题研究,提升教科研研究水平;加强师资队伍建设,提升教师的教学能力。组织教师有效开展本组的和全校的课题研究工作做到有计划、有研究、有活动、有总结,并在此基础上撰写教育教学论文,并向报刊杂志和年会投稿。制订好本组本学期的校公开课、示范课、 汇报 关于vocs治理的情况汇报每日工作汇报下载教师国培汇报文档下载思想汇报Word下载qcc成果汇报ppt免费下载 课计划,并组织好听课、评课等工作。
本文档为【php二维数组排序方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
无敌大招奥特曼
暂无简介~
格式:doc
大小:17KB
软件:Word
页数:17
分类:
上传时间:2022-04-11
浏览量:8