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

问题描述:

我希望能够在字符串中指定索引并将其删除。php:从字符串中删除特定的索引?

我有以下几点:

"Hello World!!" 

我想删除第四指数(o在你好)。这里将是最终的结果:

"Hell World!!" 

我试过unset(),但没有奏效。我已经谷歌如何做到这一点,这就是每个人都说,但它没有为我工作。也许我没有正确使用它,idk。

+3

使用'substr'。获取前几个字符,获取索引后的最后几个字符,然后连接。 – mario 2013-02-23 03:42:33

+0

我尝试过'unset()',但那没有奏效。我已经谷歌如何做到这一点,这就是每个人都说,但它没有为我工作。 – 2013-02-23 03:43:15

+0

将str_split放入数组中删除索引,然后将其解压回字符串。 – defaultNINJA 2013-02-23 03:47:22

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

我可能会将字符串放入一个数组中,然后删除第4个键。 – Kermit 2013-02-23 03:53:47

+1

@AarolamaBluenk字符串!= php中的数组:) – 2013-02-23 09:22:09

+0

在第3行:作为“substr”的第三个参数的整数“7”不需要使其工作。 – 2017-03-21 18:52:07

这是解决这个问题的一般方法:

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

基本上,之前从指数开始与相邻的字符串的一部分替换字符串的一部分。

参见:substr_replace()

或者,干脆:

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

$myVar = "Hello World!!"; 

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

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

个人我喜欢处理数组。

(抱歉缺乏代码支架通过我的手机把这个了)

+0

使用数组既不短也不高效;另外,字符串函数并不是那么难吗? :) – 2013-02-23 08:33:33

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

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

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

这种处理字符串的PHP具体还窃听我一段时间。当然,自然的解决方案是使用字符串函数或使用数组,但这比直接使用字符串索引在我看来要慢。下面的代码片段的问题是,在内存字符串中只会被替换为空的,如果你有比较或其他的东西,这是不好的选择。也许在将来的版本中,我们将构建函数直接删除字符串索引。

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