我希望能够在字符串中指定索引并将其删除。
我有以下内容:
"Hello World!!"
我想删除Hello中的第4个索引(o
)。这将是最终结果:
"Hell World!!"
我尝试了unset()
,但这没效果。我用谷歌搜索了如何做到这一点,这就是每个人都说的,但它对我没用。也许我没有正确使用它,idk。
答案 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);