关于二维数组过滤的应用和总结

2018-02-27 11:09:02来源:oschina作者:潜_龙_勿_用人点击

分享


在以往的开发工作中,没有使用过二维数组过滤的情况下,针对处理二维数组的问题,采用的方式十分的复杂。


在我看过的程序中,针对数据的处理多数都十分不用心,数据查询的冗余,这对于正在学习的我来说,不得不说也确实误导我很长一段时间,后来写了不少的代码,反思这种错误,对于二维数组,如果能够根据一定条件进行筛选,返回回来,这对于数据库的查询效率有着很大的提高。本来决定自己写一个这样的函数,来解决,后查到php有着数组过滤的函数array_filter,就开始着手对以往程序进行改造。接下来就简单介绍一下这个函数的应用。


废话不多说,直接上代码:


$student=array(


["id"=>1,"name"=>"jim","offica_id"=>"1","professional_id"=>2],


["id"=>2,"name"=>"tom","offica_id"=>"2","professional_id"=>2],


["id"=>3,"name"=>"lili","offica_id"=>"2","professional_id"=>2],


["id"=>4,"name"=>"katelin","offica_id"=>"2","professional_id"=>3]


);


把以上的一组二维数组,作为从数组库中查询到结果,我们要筛选出professional_id是2的学生,可以使用array_filter函数来进行处理


$result=array_filter($student,function($arr){


return ($arr["professional_id"]==2);


});


这样我们就得到了professional_id为2的学生,也可以对闭包函数传变量,例如找出二维数组中professional_id为$cs_id的学生


$result=array_filter($student,function($arr) use ($cs_id){


return ($arr["profession_id"]==$cs_id);


});


这个函数的应用十分广泛,都是php自带的函数,效率自然是不低,如果能够巧妙应用,能够解决一些非常棘手的程序问题,由于php的数组的底层是hash_table,因此php的数组强大的功能也是不容置疑的,希望这篇文章,能够对于正在撸代码的各位能有所帮助。

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台