思路:
你可以在你要加的那个东东的地方打断.添加后连接.你看成吗?
这是字串
$str="1.0,2.1,3.2,4.2,6.1,88.2,90.3,140.4,141.3,101.2,9.1";
我想在88.2打断
$aa=explode('88.2',$str);
$aa[0].=88.2,90.3
$str=$aa[0].$aa[1];
这样可以吗?
你可以在你要加的那个东东的地方打断.添加后连接.你看成吗?
这是字串
$str="1.0,2.1,3.2,4.2,6.1,88.2,90.3,140.4,141.3,101.2,9.1";
我想在88.2打断
$aa=explode('88.2',$str);
$aa[0].=88.2,90.3
$str=$aa[0].$aa[1];
这样可以吗?
<?PHP
function insert($str,$str1,$str2){
$arr2=explode('.',$str2);
$arr3=explode('.',$str1);
$arr=explode(',',$str);
for($i=0;$i<count($arr);$i++){
if($start){
$arr1=explode('.',$arr[$i]);
if($arr1[1]<=$arr3[1]) {$result[]=$str2;$start=false;}
}
$result[]=$arr[$i];
if($arr[$i]==$str1) $start=true;
}
$res=implode(',',$result);
echo $res.'<br>';
return $res;
} $str="1.0,2.1,3.2,4.2,6.1,88.2,90.3,9.1";
$str1="6.1";
$str2="101.2";
$str=insert($str,$str1,$str2); $str1="90.3";
$str2="140.4";
$str=insert($str,$str1,$str2); $str1="88.2";
$str2="141.3";
$str=insert($str,$str1,$str2);
?>
这个的程序表面有的好像是对,但是到达一定的程度,就会出现意料不到的错误,
大家的结果我暂存,验正正确的我另外再给分,谢谢解答。
我们这下雨了,呵呵,心情好好,
大家可以继续发,不管对错,参预者都有分,up者2分,up三次以上者无分.
1.0,2.1,3.2,4.2,6.1,88.2,10.2,90.3,9.1
呵呵function add($f,$n,$s){
$arr=explode(",",$s);
if($p=array_search ($f,$arr)){
$tmp=explode(".",$arr[$p]);
$d=$tmp[1]+1;
$notFound=true;
for($i=$p+1;$i<count($arr);$i++){
$tmp=explode(".",$arr[$i]);
if($tmp[1]<$d){
$notFound=false;
$arr[$i]="$n.$d,".$arr[$i];
break;
}
}
if($notFound)$arr[]="$n.$d";
}
return implode(",",$arr);
}
$str="1.0,2.1,3.2,4.2,6.1,88.2,90.3,9.1";
$str=add("6.1","101",$str);
echo $str."<br>";
$str=add("90.3","140",$str);
echo $str."<br>";
$str=add("88.2","141",$str);
echo $str."<br>";
首先采用的 binscut(迷雾) 兄的算法, 然后采用的是qiushuiwuhen(秋水无恨) 小妹妹的算法,最终我使用的是第二种,
在这里再次谢谢各位的解答。和两位给予的答案,给我帮了很大的忙。