채택완료

문자열 추출

아래 예제에서 

안녕하세요 저는 {영수|철수|민희} 입니다. 저의직업은{택배|의사|사무직} 입니다. 

{} 괄호안에 녀석들을 배열로 넣고 싶은데 explode 말고 어떤걸 써야될까요?

|

답변 3개

채택된 답변
+20 포인트
2021-04-23 (금) 11:39:56

{~} 사이의 문자열 구해서 분리하는 방법입니다. * 예외 사항 패스!

Copy
$str = "안녕하세요 저는 {영수|철수|민희} 입니다. 저의직업은{택배|의사|사무직} 입니다.";
$data = [];
if ( preg_match_all('/\{([^}]+)}/u', $str, $matches) ) { // {문자열} 구함
    foreach ( $matches[1] as $temp ) {
        $data[] = explode('|', $temp);
    }
}
print_r($data);

 

/*

Array
(
    [0] => Array
        (
            [0] => 영수
            [1] => 철수
            [2] => 민희
        )

    [1] => Array
        (
            [0] => 택배
            [1] => 의사
            [2] => 사무직
        )

)

*/
2021-04-23 (금) 12:51:39

배열"이란 게 혹시 html <select 아닐까요?

explode 가 가장 좋아보입니다.

Copy
$str = "{택배|의사|사무직}";
$arr = explode("|",str_replace(array("{","}"),"", $str));
print_r($arr);

답변을 작성하려면 로그인이 필요합니다.