思路:
你可以在你要加的那个东东的地方打断.添加后连接.你看成吗?
这是字串
$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];
这样可以吗?

解决方案 »

  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);
    ?>
      

  2.   

    大家可以尽量的发,我现在正处在糊涂中,,,,,,
    这个的程序表面有的好像是对,但是到达一定的程度,就会出现意料不到的错误,
    大家的结果我暂存,验正正确的我另外再给分,谢谢解答。
    我们这下雨了,呵呵,心情好好,
    大家可以继续发,不管对错,参预者都有分,up者2分,up三次以上者无分.
      

  3.   

    上回要的是
    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>";
      

  4.   

    首先,谢谢几位的解答,
        首先采用的 binscut(迷雾) 兄的算法, 然后采用的是qiushuiwuhen(秋水无恨) 小妹妹的算法,最终我使用的是第二种,
        在这里再次谢谢各位的解答。和两位给予的答案,给我帮了很大的忙。