我试图通过一次从字符串中删除一个字符来创建回文。在取消设置字符串索引时。字符串长度没有减少。
$s = "arun";
var_dump ($s);
$s[1] = NULL;
var_dump($s) ;
输出
string(4) "arun"
string(4) "aun"
为什么长度没有减少。
因为您并没有以任何方式减少字符串,只是替换了一个字符。
您的字符串将从a r u n
转换为a (null) u n
,它仍然有四个字符长。
要实现您的目标,请使用substra_replace
<?php
$s = "arun";
var_dump ($s); //arun
$s = substr_replace($s, "", 1,1);
var_dump($s); //aun
您并没有真正删除任何内容,只是将$s[1]
设置为null。那么如果它为空呢?$s[1]
仍然是字符串的一部分。
要解决此问题,use substr()
编辑:
示例:
$s = "arun";
var_dump ($s);
$s[1] = NULL;
$s = $s[0].substr($s,2); // get the first index and "un" then concatenate them
var_dump($s) ;
这个数组仍然是4个元素,但在$s[1]
中只是null
。
这是因为输出中的字母如下所示:aNULLun
将字符串拆分为字母,取消设置特定索引,再次连接在一起:
$s = "arun";
$s = str_split($s);
unset($s[1]);
var_dump(implode('', $s));
示例