Как удалить данный элемент из списка через запятую?

1
$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;
  • 0
    function removeElement($list,$data){ return implode(',',array_diff(explode(',',$list),explode(',',$data))); } echo removeElement($list,"Thrs,Mon")
Теги:
arrays
explode
array-difference

2 ответа

5
Лучший ответ

Используйте explode и переменную $input:

$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;
0

вы можете сохранить свой список в массиве или просто взорвать его, если вы не хотите

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню