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개
BiHon
2021-11-09 (화) 16:58:21
답변을 작성하려면 로그인이 필요합니다.
$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]