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的问题。分解解析和交叉数组肯定会造成更多的资源浪费