[英]How to cut only the FIRST character in a string
所以在這種情況下,我想刪掉第一個“ 1”。 字符串中,但不能跟在任何“ 1”之后。 我想知道這是否有可能。
因此,我正在將其轉換為字符串,並且我想知道是否有一種方法只能刪除開頭的“ 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++;
您的ltrim
代碼不起作用的原因是,您傳入的\\1
與字符1
。 \\1
指的是其ASCII碼是字符1
作為是不一樣的1
的ASCII代碼實際上是\\49
。
像這樣修改您的代碼:
ltrim($str, '1');
這應該從字符串的左邊開始修剪所有的1
s。
但是,您應該知道ltrim
會刪除字符串左側的所有匹配字符,而不僅僅是第一個!
如果只想要第一個,則應該使用substr
,並進行測試以確保它是1
。
if(substr($str, 0, 1) == '1')
$str = substr($str, 1);
而且,如果您也想刪除句點,則只需修改代碼以包含該句點(並查看前2個字符而不是僅第一個字符)
if (strlen($str) > 2 && substr($str, 0, 2) == '1.')
$str = substr($str, 2);
使用strpos檢查1.是否在開頭。 如果是,則使用substr返回字符串減去1。
$string = '1.1';
if (strpos($string, '1.') === 0) {
$string = substr($string, 2);
}
var_dump($string);
您還可以將str_replace與約束一起使用:
$new_string = str_replace ('1.' , '' , $your_string, 1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.