Php 根据用户输入从字符串中删除字符
假设我有一个字符串:Php 根据用户输入从字符串中删除字符,php,Php,假设我有一个字符串: $str="1,3,6,4,0,5"; 现在用户输入3 我想从上面的字符串中删除3,这样上面的字符串应该变成: $str_mod="1,6,4,0,5"; 是否有任何功能可以执行上述操作 preg_replace('/\d[\D*]/','','1,2,3,4,5,6'); 代替\d只需放置您的数字 代替\d只需放置您的数字即可您可以将其拆分,删除所需数字,然后将其重新组合在一起: $str = "1,3,6,4,0,5"; $userInput = 3; $bit
$str="1,3,6,4,0,5";
现在用户输入3
我想从上面的字符串中删除3
,这样上面的字符串应该变成:
$str_mod="1,6,4,0,5";
是否有任何功能可以执行上述操作
preg_replace('/\d[\D*]/','','1,2,3,4,5,6');
代替\d只需放置您的数字
代替\d只需放置您的数字即可您可以将其拆分,删除所需数字,然后将其重新组合在一起:
$str = "1,3,6,4,0,5";
$userInput = 3;
$bits = explode(',', $str);
$result = array_diff($bits, array($userInput));
echo implode(',', $result); // 1,6,4,0,5
奖励:取出多个值。您可以将其拆分,删除所需的值,然后将其重新组合在一起:
$str = "1,3,6,4,0,5";
$userInput = 3;
$bits = explode(',', $str);
$result = array_diff($bits, array($userInput));
echo implode(',', $result); // 1,6,4,0,5
好处:取出多个值。如果您不想进行字符串操作,可以将字符串拆分为多个片段,删除不需要的片段,然后重新连接组件:
$numberToDelete = 3;
$arr = explode(',',$string);
while(($idx = array_search($numberToDelete, $components)) !== false) {
unset($components[$idx]);
}
$string = implode(',', $components);
上述代码将删除所有出现的3,如果您只想删除第一个,则可以用
替换,而如果,如果您不想进行字符串操作,则可以将字符串拆分为多个片段,删除不需要的片段,然后重新连接组件:
$numberToDelete = 3;
$arr = explode(',',$string);
while(($idx = array_search($numberToDelete, $components)) !== false) {
unset($components[$idx]);
}
$string = implode(',', $components);
上述代码将删除所有出现的3,如果您只想删除第一个,您可以使用if
str_replace()
替换?这是一个好的开始。另外,preg_replace()
您可以先使用explode
,unset
,内爆
,str_replace()
等。阅读它们并根据您的要求使用。用户为什么对这个问题投赞成票?str_replace()
?这是一个好的开始。另外,preg_replace()
你可以先使用explode
,unset
,内爆
,str_replace()
等。阅读它们并根据你的要求使用。为什么用户会对这个问题投赞成票?这其实很聪明+这其实很聪明+在这种情况下,不需要使用REGEX。错误的是,它的行数较少,解决了commo或no逗号问题,解决了从33中删除整个3而不是3的问题。分解解析然后交叉数组必须更多资源浪费在这种情况下不需要Regex错误它的行数更少,解决了commo或no逗号的问题解决了从33中删除整个3而不是3的问题。分解解析和交叉数组肯定会造成更多的资源浪费