php:从字符串中删除特定索引?

时间:2013-02-23 03:40:42

标签: php string

我希望能够在字符串中指定索引并将其删除。

我有以下内容:

"Hello World!!"

我想删除Hello中的第4个索引(o)。这将是最终结果:

"Hell World!!"

我尝试了unset(),但这没效果。我用谷歌搜索了如何做到这一点,这就是每个人都说的,但它对我没用。也许我没有正确使用它,idk。

5 个答案:

答案 0 :(得分:13)

这是解决它的一般方法:

$str = "Hello world";
$i = 4;
echo substr_replace($str, '', $i, 1);

基本上,从索引之前替换字符串中与字符串相邻的部分。

另请参阅:substr_replace()

或者,简单地说:

substr($str, 0, $i) . substr($str, $i + 1)

答案 1 :(得分:7)

$str="Hello World";
$str1 = substr($str,0,4);
$str2 = substr($str,5,7);
echo $str1.$str2;

答案 2 :(得分:1)

这个特定于使用字符串的php也让我感到困扰了一段时间。当然,自然的解决方案是使用字符串函数或使用数组,但这比我认为直接使用字符串索引慢。以下代码片段问题是内存字符串只替换为空 ,如果你有比较或其他什么,这不是一个好的选择。也许在将来的版本中,我们将内置函数来直接删除知道的字符串索引。

$string = 'abcdefg';
$string[3] = '';
var_dump($string);
echo $string;

答案 3 :(得分:0)

$myVar = "Hello World!!";

$myArray = str_split($myVar);
array_splice($myArray, 4, 1);

$myVar = implode("", $myArray);

个人我喜欢处理数组。

(很抱歉没有代码括号通过我的手机把它拿出来)

答案 4 :(得分:0)

我认为可以创建一个函数并像这样调用它

    function rem_inx ($str, $ind)
    { 
       return substr($str,0,$ind++). substr($str,$ind);
    }

    //use
    echo rem_inx ("Hello World!!", 4);