Mam grupę ciągów, które muszę poruszyćdo tablicy. Ciąg musi być podzielony na „/”, „,”, „with” lub „&”. Niestety, łańcuch może zawierać dwa z ciągów, na które trzeba rozdzielić, więc nie mogę użyć podziału lub wybuchu.
Na przykład ciąg może powiedzieć „najpierw przeszłość / przekroczenie, a potem zwrot”, więc próbuję uzyskać tablicę, która by zwróciła tablica („pierwsza przeszłość”, „wykraczanie poza”, „następnie kolej”)
Obecnie używam kodu
$ splittersArray = array ("/", ",", "with", "&"); foreach ($ splittersArray as $ splitter) { if (strpos ($ string, $ splitter)) { $ splitString = split ($ splitter, $ string); foreach ($ splitString as $ split) {
Nie mogę znaleźć tej funkcji w PHPpozwala mi to zrobić. Czy muszę przepuszczać sznurek z powrotem do górnej części lejka i kontynuować przechodzenie przez „foreach” po tym, jak sznurek został ponownie podzielony?
To nie wydaje się bardzo wydajne. Wszelkie sugestie byłyby świetne. Dzięki, Pete
Odpowiedzi:
8 dla odpowiedzi № 1Użyj wyrażenia regularnego i preg_split.
W przypadku, o którym wspominasz, uzyskasz podzieloną tablicę z:
$splitString = preg_split("/(/|,| with |&/)/", $string);