如何从逗号分隔列表中删除给定项目


How to remove given item from comma separated list?

$list = 'Mon,Tue,Wed,Thrs,Fri,Sat,Sun';

是否有正则表达式或函数可以按如下方式工作?

1)"Tue"       return string ->"Mon,Wed,Thrs,Fri,Sat,Sun"
2)"Thrs, Mon"     return string ->"Tue,Wed,Fri,Sat,Sun"
3)"Sun,Wed,Fri"       return string ->"Mon,Tue,Thrs,Sat"
4)"Fri"     return string ->"Mon,Tue,Wed,Thrs,Sat,Sun"

下面适用于仅从字符串中删除一个项目。如果我想像上面一样删除多个项目怎么办?

$input = 'Wed';
$list = 'Mon,Tue,Wed,Thrs,Fri,Sat,Sun';
    $array1 = Array($input);
    $array2 = explode(',', $list);
    $array3 = array_diff($array2, $array1);
    $output = implode(',', $array3);
    echo $output;

$input变量上也使用 explode

$input = 'Wed';
$list = 'Mon,Tue,Wed,Thrs,Fri,Sat,Sun';
$array1 = explode(',', $input);
$array2 = explode(',', $list);
$array3 = array_diff($array2, $array1);
$output = implode(',', $array3);
echo $output;

您可以将列表存储在数组中,或者如果您不想,可以将其分解

 function weekdays($day){
    $list= array('Mon','Tue','Wed','Thrs','Fri','Sat','Sun');
    if (($key = array_search($day, $list )) !== false) {
        unset($list[$key]);
        return $list;
       }
    }