简单二分法 简单

$MapString="116.310634759589,39.990045537862,46#116.310371735567,39.989799696735005,44#116.310489333624,39.989904135209,43#116.31047961062,39.989998263946,42.5#116.310506600338,39.990206973256,52.5#116.310506600338,39.990206973256,52.5#116.311968822793,39.99050754819,43#116.312106621229,39.99047402059,43#116.31211324293001,39.990485922888006,43#116.310634759589,39.990045537862,46#116.310371735567,39.989799696735005,44#116.310489333624,39.989904135209,43#116.31047961062,39.989998263946,42.5#116.310506600338,39.990206973256,52.5#116.310506600338,39.990206973256,52.5#116.311968822793,39.99050754819,43#116.312106621229,39.99047402059,43#116.31211324293001,39.990485922888006,43#116.310634759589,39.990045537862,46#116.310371735567,39.989799696735005,44#116.310489333624,39.989904135209,43#116.31047961062,39.989998263946,42.5#116.310506600338,39.990206973256,52.5#116.310506600338,39.990206973256,52.5#116.311968822793,39.99050754819,43#116.312106621229,39.99047402059,43#116.31211324293001,39.990485922888006,43#116.310634759589,39.990045537862,46#116.310371735567,39.989799696735005,44#116.310489333624,39.989904135209,43#116.31047961062,39.989998263946,42.5#116.310506600338,39.990206973256,52.5#116.310506600338,39.990206973256,52.5#116.311968822793,39.99050754819,43#116.312106621229,39.99047402059,43#116.31211324293001,39.990485922888006,43#116.310634759589,39.990045537862,46#116.310371735567,39.989799696735005,44#116.310489333624,39.989904135209,43#116.31047961062,39.989998263946,42.5#116.310506600338,39.990206973256,52.5#116.310506600338,39.990206973256,52.5#116.311968822793,39.99050754819,43#116.312106621229,39.99047402059,43#116.31211324293001,39.990485922888006,43#116.310634759589,39.990045537862,46#116.310371735567,39.989799696735005,44#116.310489333624,39.989904135209,43#116.31047961062,39.989998263946,42.5#116.310506600338,39.990206973256,52.5#116.310506600338,39.990206973256,52.5#116.311968822793,39.99050754819,43#116.312106621229,39.99047402059,43#116.31211324293001,39.990485922888006,43#116.310634759589,39.990045537862,46#116.310371735567,39.989799696735005,44#116.310489333624,39.989904135209,43#116.31047961062,39.989998263946,42.5#116.310506600338,39.990206973256,52.5#116.310506600338,39.990206973256,52.5#116.311968822793,39.99050754819,43#116.312106621229,39.99047402059,43#116.31211324293001,39.990485922888006,43#116.310634759589,39.990045537862,46#116.310371735567,39.989799696735005,44#116.310489333624,39.989904135209,43#116.31047961062,39.989998263946,42.5#116.310506600338,39.990206973256,52.5#116.310506600338,39.990206973256,52.5#116.311968822793,39.99050754819,43#116.312106621229,39.99047402059,43#116.31211324293001,39.990485922888006,43";
$arr = explode("#",$MapString);
$CityArray="";
getMapCity($arr, 10, 1, $CityArray);
/*********************
*@parent MapArr    数组
*@parent number    最小数值
*@parent i         次数
*@parent CityArray 取得的数值
*********************/
function getMapCity($MapArr, $number, $i,&$CityArray){
	if(count($MapArr) >= $number){
		$z = ceil(count($MapArr)/2);
		if($i==1){ //第一次取三个点信息
		    $CityArray[]=$MapArr[0];
			$CityArray[]=$MapArr[count($MapArr)-1];			
		}
		$CityArray[]=$MapArr[$z];
		$firstArray = array_slice($MapArr,0,$z);
		$endArray = array_slice($MapArr,$z,$z);
		getMapCity($firstArray,$number,++$i, $CityArray);
		getMapCity($endArray,$number,++$i,$CityArray);
	}
}
echo "<h1>CityArray</h1>";
var_dump($CityArray);

  

原文地址:https://www.cnblogs.com/xiangxiaodong/p/2354511.html