取消设置字符串索引时字符串长度不递减

时间:2016-10-26 12:18:04

标签: php

我试图通过一次从字符串中删除一个字符来创建回文。在取消设置字符串索引时。字符串长度不会减少。

$s = "arun";
var_dump ($s);
$s[1] = NULL;
var_dump($s) ;

输出

string(4) "arun"
string(4) "aun"

为什么长度不减少。

4 个答案:

答案 0 :(得分:3)

因为你没有以任何方式减少你的字符串,只是替换一个字符。

你的字符串从a r u n转换为a (null) u n,这仍然是四个字符长。

要实现您的目标,请使用substr_replace

<?php
$s = "arun";
var_dump ($s); //arun
$s = substr_replace($s, "", 1,1);
var_dump($s); //aun

答案 1 :(得分:1)

您并没有真正删除任何内容,只是将$s[1]设置为null。 那么如果它是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) ;

答案 2 :(得分:0)

这个数组仍然是4个元素,但null只是@HystrixCommand(fallbackMethod = "reliable")

答案 3 :(得分:0)

这是因为输出中的字母如下:aNULLun

将字符串拆分为字母,取消设置特定索引,再次连接在一起:

$s = "arun";
$s = str_split($s);
unset($s[1]);

var_dump(implode('', $s));

Example