PHP如何在指定位置插入相关字符串

PHP如何在指定位置插入相关字符串,
例子:123456789变为1_23_456789
插入"_"到指定的位置!

  插入示例,具体思路在代码中有注释:

<?php
/**
 * æŒ‡å®šä½ç½®æ’入字符串
 * @param $str  åŽŸå­—符串
 * @param $i    æ’入位置
 * @param $substr æ’入字符串
 * @return string å¤„理后的字符串
 */
function insertToStr($str, $i, $substr){
    //指定插入位置前的字符串
    $startstr="";
    for($j=0; $j<$i; $j++){
        $startstr .= $str[$j];
    }
    
    //指定插入位置后的字符串
    $laststr="";
    for ($j=$i; $j<strlen($str); $j++){
        $laststr .= $str[$j];
    }
    
    //将插入位置前,要插入的,插入位置后三个字符串拼接起来
    $str = $startstr . $substr . $laststr;
    
    //返回结果
    return $str;
}

//测试
$str="hello zhidao!";
$newStr=insertToStr($str, 6, "baidu");
echo $newStr;
//hello baiduzhidao!
?>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-23
字符串切割,再重组
第2个回答  2012-11-23
怎么指定?说出条件是什么才能解决啊追问

就是在字符串中的第二个与第五个位置添加"_"

追答

瞎写的,不过可以实现你的要求

$str = "123456789";
$str = preg_replace('/(.{1})(.*)/is','\1_\2',$str);
$str = preg_replace('/(.{4})(.*)/is','\1_\2',$str);
echo $str;exit;

第3个回答  2012-11-23
应该没有 你知道指定位置了应该很好解决了吧 要不自己写一个方法也可以啊
相似回答