所以我有这种情况,我想删掉第一个' 1。'超出一个字符串,但没有任何跟随' 1。' s。我想知道这是否可行。
所以我将它转换为字符串,我想知道是否有办法只删除最初的' 1。'而不是任何追随者。
因此,我的脚本根据特定条件动态分配一个数字,例如1,1.1,1.2,2,3,3.1。它目前正在增加1.到一切的开始。所以1会= 1.1,2.1会= 1.2.1等等。
有没有办法强迫它只取出第一个而不是后续的?这是我的来源:
$str = (string)$i; $str = $i;
$prepend = $parentPrepend ?
$parentPrepend . '.' . $i
: $str = ltrim($str, '\1');
$i++;
答案 0 :(得分:1)
ltrim
代码不起作用的原因是您传递的\1
与角色1
不同。 \1
是指ASCII码为1
的字符,与ASCII码实际为1
的{{1}}不同。
像这样修改你的代码:
\49
那应该修剪字符串左边的所有 ltrim($str, '1');
。
但是,您应该知道1
将删除字符串左侧的所有匹配字符,而不仅仅是第一个字符!
如果您只想要第一个,那么您应该使用ltrim
代替测试,以确保它是substr
。
1
如果你想删除句点,那么只需修改代码即可包含(并查看前2个字符而不是第一个字符)
if(substr($str, 0, 1) == '1')
$str = substr($str, 1);
答案 1 :(得分:0)
使用strpos检查1.是否在开头。如果是,则使用substr返回字符串减去1。
$string = '1.1';
if (strpos($string, '1.') === 0) {
$string = substr($string, 2);
}
var_dump($string);
答案 2 :(得分:0)
您还可以使用带有约束的str_replace:
$new_string = str_replace ('1.' , '' , $your_string, 1);