我是这样想的,但不知有否曲解楼主的意思.首先把这个东西看做一个祖普,根就用0表示,且你其他的数据就定成,第一个数表示你是那一代人,后面的是你相对根的脉,
(1,0)=>>0
(6,1)=>>1_6 =>> $arry[1][6]
(101,2)=>>2_6_101 #$arry[2][6][101]
不过你要找第三代人企不是要给出三个数据,.......
xi下班再想了,有意思
(1,0)=>>0
(6,1)=>>1_6 =>> $arry[1][6]
(101,2)=>>2_6_101 #$arry[2][6][101]
不过你要找第三代人企不是要给出三个数据,.......
xi下班再想了,有意思
$str="1.0,2.1,3.2,4.2,6.1,88.2,90.3,9.1";
$str1="6.1";
$str2="101.2";$arr2=explode('.',$str2);$arr=explode(',',$str);
for($i=0;$i<count($arr);$i++){
if($arr[$i]==$str1) $start=true;
if($start){
$arr1=explode('.',$arr[$i]);
if($arr2[1]<$arr1[1]) $result[]=$str2;
}
$result[]=$arr[$i];
}
echo implode(',',$result);
?>
.
.
2.....................................
. .
. 3......................
. .
. 4......................
.
6.....................................
. .
. 88.....................
. .
. 90.....
9....................................
$str="1.0,2.1,3.2,4.2,6.1,88.2,90.3,9.1";
插入(101,2)的结果为
0-----1---------------2--------------3
1............................................
.
.
2.....................................
. .
. 3......................
. .
. 4......................
.
6.....................................
. .
. 88.....................
. . .
. . 90.....
. .
. 101.....................
9....................................
$str="1.0,2.1,3.2,4.2,6.1,88.2,101.2,90.3,9.1";
function add($f,$n){
global $str;
$arr=explode(",",$str);
if($p=array_search ($f,$arr)){
$tmp=explode(".",$arr[$p]);
$d=$tmp[1]+1;
$bFlag=false;
for($i=$p+1;$i<count($arr);$i++){
$tmp=explode(".",$arr[$i]);
if($tmp[1]==$d)$bFlag=true;
if($arr[$i]!=$d){
if($bFlag)
$arr[$i].=",$n.$d";
else
$arr[$i]="$n.$d,".$arr[$i];
break;
}
}
}
return implode(",",$arr);
}
echo add("6.1","10")."<br>";
echo add("88.2","10")."<br>";
echo add("90.3","10")."<br>";
$str="1.0,2.1,3.2,4.2,6.1,88.2,90.3,9.1";
由(6.1)插入(101,2)的结果为
$str="1.0,2.1,3.2,4.2,6.1,88.2,'101.2',90.3,9.1";
由(2.1)再插入一个(120,2);
$str="1.0,2.1,3.2,4.2,'120.2',6.1,88.2,101.2,90.3,9.1,120.1";
这个插入的(x,y)中的x越来越大根据给出的(m,n来进行插入)
由(101.2)再插入一个(134.3):
$str="1.0,2.1,3.2,4.2,120.2,6.1,88.2,101.2,90.3,'134.3',9.1,120.1";
这个插入的字符串我加了引号,
$str="1.0,2.1,3.2,4.2,6.1,88.2,90.3,9.1";
$str1="6.1";
//$str2="101.1";
//$str2="101.2";
$str2="101.3";$arr2=explode('.',$str2);
$arr3=explode('.',$str1);$arr=explode(',',$str);
for($i=0;$i<count($arr);$i++){
if($start){
$arr1=explode('.',$arr[$i]);
if(($arr2[1]<$arr1[1] && $arr2[1]>$arr3[1]) || $arr1[1]<=$arr3[1]) {$result[]=$str2;$start=false;}
}
$result[]=$arr[$i];
if($arr[$i]==$str1) $start=true;
}
echo implode(',',$result);
?>替换$str2的值试试
//$str2="101.1";
//$str2="101.2";
.
.
2.....................................
. .
. 3......................
. .
. 4......................
.
6.....................................
. .
. 88.....................
. .
. 90.....
9....................................
$str="1.0,2.1,3.2,4.2,6.1,88.2,90.3,9.1";
插入(101,2)的结果为
0-----1---------------2--------------3
1 1............................................
.
.
2 2.....................................
. .
3 . 3......................
. .
4 . 4......................
.
5 6.....................................
. .
6 . 88.....................
. . .
7 . . 90.....
. .
8 . 101.....................
9 9....................................
$str="1.0,2.1,3.2,4.2,6.1,88.2,90.3,101.2,9.1";