1. /** 
  2.  * 给数组插入零的成员函数 
  3.  * 描述: 
  4.  * $idx为插入的数组的下标值 
  5.  * 分三种情况: 
  6.  * 1、如果$idx==0,则在数组前面放一个0; 
  7.  * 2、如果$idx>$count,则在$idx处放一个0,剩下的用$idx-$count+1个0填充; 
  8.  * 3、如果0<$idx<=$count,则在$idx处插入一个0。 
  9.  * @param unknown_type $arr是从小到大已经排好序的数组 
  10.  * @param unknown_type $idx  
  11.  * @param unknown_type $value 
  12.  */ 
  13. public function insertArr($arr,$idx,$value){ 
  14.   $v=0
  15.   if($idx==0){ 
  16.     return array_merge(array($v),$arr); 
  17.   } 
  18.   $countcount=count($arr); 
  19.   if($idx>$count){ 
  20.     return array_merge($arr,array_fill(0, $idx-$count+1, $v)); 
  21.   } 
  22.   $tmparr=array(); 
  23.   for($i=0;$i<$count;$i++){ 
  24.     $tmparr[]=$arr[$i]; 
  25.     if($i==$idx-1){ 
  26.         $tmparr[]=$v; 
  27.         $arr=array_merge($tmparr,array_splice($arr, $idx));break; 
  28.     } 
  29.   } 
  30.   return $arr; 
  31. /** 
  32.  * 获取两个数组对比后,填充短数组的下标成员函数,以符合$array数组的长度 
  33.  * 其中$arr数组的长度必须小于等于$array的数组长度,并且$array必须是连续自然数集合数组,$arr则可以跳跃递增 
  34.  * @param unknown_type $arr 短数组参数,从小到大已经排好序的数组 
  35.  * @param unknown_type $array长数组参数,从小到大已经排好序的数组 
  36.  */ 
  37. public function arrdifidx($arr,$array){ 
  38.     $arrc=count($arr); 
  39.     $arrayc=count($array); 
  40.     $rtn=array(); 
  41.     if($arr==$array){return $rtn;} 
  42.     for($i=0,$j=0;$i<=$arrc;$i++){ 
  43.         for($k=$j;$k<$arrayc;$k++){ 
  44.             if($arr[$i]>$array[$k]){ 
  45.                 $rtn[]=$j; 
  46.                 $j++; 
  47.             }else{ 
  48.                 $j++; 
  49.                 break; 
  50.             } 
  51.         } 
  52.     } 
  53.     if(count($rtn)<$arrayc){ 
  54.         array_push($rtn, $arrayc-1); 
  55.     } 
  56.     return $rtn;