简体   繁体   中英

Remove characters from string based on user input

Suppose I have a string:

$str="1,3,6,4,0,5";

Now user inputs 3 .

I want that to remove 3 from the above string such that above string should become:

$str_mod="1,6,4,0,5";

Is there any function to do the above?

You can split it up, remove the one you want then whack it back together:

$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

Bonus: Make $userInput an array at the definition to take multiple values out.

preg_replace('/\d[\D*]/','','1,2,3,4,5,6');

代替\\ d只是放置您的数字php

If you don't want to do string manipulations, you can split the string into multiple pieces, remove the ones you don't need, and join the components back:

$numberToDelete = 3;
$arr = explode(',',$string);
while(($idx = array_search($numberToDelete, $components)) !== false) {
    unset($components[$idx]);
}
$string = implode(',', $components);

The above code will remove all occurrences of 3, if you want only the first one yo be removed you can replace the while by an if .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM