求高手一个算法解决办法
求高手一个算法有两个二维数组PHP code$aarray(array(id1,namea,urlc),array(id2
求高手一个算法
有两个二维数组
PHP code$a=array( array('id'=>'1','name'=>'a','url'=>'c'), array('id'=>'2','name'=>'aa','url'=>'cc'), array('id'=>'3','name'=>'aaa','url'=>'ccc'));$b=array( array('name'=>'aa','url'=>'cc'), array('name'=>'a','url'=>'c'));
如何能够得到array('id'=>'3','name'=>'aaa','url'=>'ccc')呢?意思就是说,比较两个数组中除了id的项,如果数组a中的值在数组b中不存在,则筛选出来,不希望使用嵌套foreach,每个数组中都有好几万条记录,所以效率是个问题。请教各位,还望有思路的朋友赐教。
[解决办法]PHP code$t=array();foreach($b as $vl) $t[$vl['name'].$vl['url']]=$vl;foreach($a as $k=>$v) if(!$t[$v['name'].$v['url']]) unset($a[$k]); print_r($a);
[解决办法]
[解决办法]
isset 判断一个值是否在列表中
并无所谓是键还是值,也无所谓你的数据是如何组织的
总之,他是在列表中查询,最坏的情况就是检索到列表的最后一个元素
其实 isset 与 in_array 是相似的
就有人在我的某个类似问题中(使用了 in_array)提出了质疑
很简单,仅就算法而言,并不能因为是php内部实现的,就不计算在内
哈希表的性能优于线性表,但在时间复杂度上还是一样的
当然并不排除我的高中学历影响了对理论知识的理解