我有一个输入字符串。格式如下:
This;is;my;long;string
使用PHP获取此输出字符串的任何快速解决方案(很多字符串):
This;is;my;long
我需要删除此附录:;string
谢谢!
答案 0 :(得分:5)
如果您一直使用;
作为分隔符,则可以explode()
字符串,删除最后一个索引,然后使用implode()
重新加入字符串:
$str = "This;is;my;long;string";
$strArr = explode(";", $str);
unset($strArr[count($strArr) - 1]);
$newStr = implode(";", $strArr);
<强>更新
为了使任何可搜索字符串能够正常工作,您可以使用array_keys()
:
$str = "This;is;my;long;string";
$strArr = explode(";", $str);
$searchStr = "string";
$caseSensitive = false;
$stringLocations = array_keys($strArr, $searchStr, $caseSensitive);
foreach ($stringLocations as $key) {
unset($strArr[$key]);
}
$newStr = implode(";", $strArr);
或者,甚至更快,您可以使用array_diff()
:
$str = "This;is;my;long;string";
$strArr = explode(";", $str);
$searchStr = array("string");
$newArray = array_diff($searchStr, $strArr);
$newStr = implode(";", $newArray);
答案 1 :(得分:4)
$str = substr($string, 0, strrpos($string, ';'));
答案 2 :(得分:2)
<?php
$string='This;is;my;long;string';
str_replace(';string','',$string); ?>
答案 3 :(得分:2)
$str = rtrim($str, ';string');
答案 4 :(得分:1)
如果您知道;string
将永远存在(大部分时间无论如何),您可以使用rtrim:
$trimmed = rtrim($text, ";string");
这将仅删除字符串中的尾随;string
。除非它存在于字符串的末尾,否则不会被删除。
答案 5 :(得分:1)
不确定您要移除的部分是否始终位于开头。
$array = explode(";" , $string);
foreach ( $array as $key => $arr ) {
if ( $arr == "string" ) {
unset($array[$key]);
break;
}
echo implode(";" , $array);
}
答案 6 :(得分:0)
如果字符串始终以这种方式格式化,那么substr就不会出错 - 可能是最快的方式
$str = 'This;is;my;long;string';
$str = substr( $str, 0, -7);