php实现两表合并成新表并且有序排列的方法
本文实例讲述了php实现两表合并成新表并且有序排列的方法。分享给大家供大家参考。
具体实现方法如下:
<?php /** la(3,5,8,11) lb(2,6,8,9,11,15) 合并为lc,有序排列。 用php实现,不能用sort之类的函数!!!! **/ classunion{ var$lista=array(); var$listb=array(); var$listc=array(); functiongetlenght($arr){//获得表长度 returncount($arr); } functiongetelement($arr,$n){//获取表中第n个元素,返回 return$e=$arr[$n]?$arr[$n]:''; } functionlistinsert($arr,$e){//表末尾插入元素 $arr[]=$e; return$arr; } } $phpig=newunion(); $lista=$phpig->lista=array(3,5,8,11); $listb=$phpig->listb=array(2,6,8,9,11,15); $listc=$phpig->listc; $lena=$phpig->getlenght($lista);//取得表大小 $lenb=$phpig->getlenght($listb); $i=$j=0; while($i<$lena&&$j<$lenb){ $ea=$phpig->getelement($lista,$i); $eb=$phpig->getelement($listb,$j); if($ea<=$eb){ $listc=$phpig->listinsert($listc,$ea); ++$i; }else{ $listc=$phpig->listinsert($listc,$eb); ++$j; } } while($i<$lena){ $ea=$phpig->getelement($lista,$i); $listc=$phpig->listinsert($listc,$ea); ++$i; } while($j<$lenb){ $eb=$phpig->getelement($listb,$j); $listc=$phpig->listinsert($listc,$eb); ++$j; } print_r($listc); ?>
希望本文所述对大家的PHP程序设计有所帮助。