2016-01-28 3 views
3

У меня есть строка, как этотдобывающие дни недели от дня строки

`mwftthssu` 

Теперь я хотел, чтобы это было в разобранном в массив

['m', 'w', 'f', 't', 'th', 's', 'su'] 

Так что я изначально сделал это str_split их в одиночный массив символов и цикл вокруг него, а затем, когда я пройду мимо t, я проверю следующую букву, если это было h, если это не так, я буду нажимать ее на другой массив, то же самое происходит с s и su для сидения и sun

Есть ли лучший способ сделать это?

ответ

3

Вы можете использовать preg_match_all со следующим регулярным выражением:

[mwf]|th?|su? 

См demo

Regex матчи:

  • [mwf] - либо m, w или f
  • | - или ...
  • th? - t или th
  • | - или ...
  • su? - s или su

Вот PHP demo:

$re = '~[mwf]|th?|su?~'; 
$str = "mwftthssu"; 
preg_match_all($re, $str, $matches); 
print_r($matches[0]); 
Смежные вопросы