채택완료

패턴 분할 관련 질문입니다.

2021-11-09 (화) 16:20:38 1,925
Copy
[0] => [20211109 10:29:02][160] [      SaleDlg::SetInsOrderDetail]    Row[01] [신규등록    ] ProdCd[000073] Qty[  1] Amt[        3500] Dc[        0] ProdNm[라면] SDS_ORG_DTL_NO[]

위의 정보값을 [ ] 괄호 단위로 분리해서 저장하고 싶습니다.

어떤 방법을 이용하면 별도의 분리가 가능할까요?

예) 

[0] => [20211109 10:29:02]

[1] => [160]

.... 등등

답변 1개 / 댓글 1개

채택된 답변
+20 포인트
2021-11-09 (화) 16:44:22
Copy
$str = '[20211109 10:29:02][160] [      SaleDlg::SetInsOrderDetail]    Row[01] [신규등록    ] ProdCd[000073] Qty[  1] Amt[        3500] Dc[        0] ProdNm[라면] SDS_ORG_DTL_NO[]';
preg_match_all('/\[[^]]*\]/', $str, $matches);
print_r($matches[0]);

/*

Array
(
    [0] => [20211109 10:29:02]
    [1] => [160]
    [2] => [      SaleDlg::SetInsOrderDetail]
    [3] => [01]
    [4] => [신규등록    ]
    [5] => [000073]
    [6] => [  1]
    [7] => [        3500]
    [8] => [        0]
    [9] => [라면]
    [10] => []
)

*/

고정된 길이면 다른 방법으로도 구할 수 있습니다.

뭐 구하는 방법이야 다양한데 생략!

답변에 대한 댓글 1개

[code]
$str = '[20211109 10:29:02][160] [ SaleDlg::SetInsOrderDetail] Row[01] [신규등록 ] ProdCd[000073] Qty[ 1] Amt[ 3500] Dc[ 0] ProdNm[라면] SDS_ORG_DTL_NO[]';
preg_match_all('/\[([^]]*)\]/', $str, $matches);
$matches[1] = array_map('trim', $matches[1]);
print_r($matches[1]);
/*
Array
(
[0] => 20211109 10:29:02
[1] => 160
[2] => SaleDlg::SetInsOrderDetail
[3] => 01
[4] => 신규등록
[5] => 000073
[6] => 1
[7] => 3500
[8] => 0
[9] => 라면
[10] =>
)
*/
[/code]

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