Вы можете взорвать строку в массив:
$list = explode(',', $string);
var_dump($list);
Что даст вам:
array
0 => string '22' (length=2)
1 => string '23' (length=2)
2 => string '24' (length=2)
3 => string '25' (length=2)
Затем делайте что хотите в этом массиве; как удалить запись, которую вы больше не хотите:
foreach ($list as $key => $value) {
if ($value == $usrID) {
unset($list[$key]);
}
}
var_dump($list);
Что дает вам:
array
0 => string '22' (length=2)
2 => string '24' (length=2)
3 => string '25' (length=2)
И, наконец, соберите части вместе:
$new_string = implode(',', $list);
var_dump($new_string);
И вы получаете то, что хотели:
string '22,24,25' (length=8)
Может быть, не так "просто", как регулярное выражение; но в тот день, когда вам нужно будет сделать больше с вашими элементами (или в тот день, когда ваши элементы сложнее, чем просто числа), это все равно будет работать: -)
РЕДАКТИРОВАТЬ: и если вы хотите удалить «пустые» значения, например, когда есть две запятые, вам просто нужно изменить условие, примерно так:
foreach ($list as $key => $value) {
if ($value == $usrID || trim($value)==='') {
unset($list[$key]);
}
}
т.е. исключить пустые $values
. «trim
» используется, поэтому с $string = "22,23, ,24,25";
также можно справиться, кстати.