패턴 분할 관련 질문입니다. 채택완료
내가누구야
3년 전
조회 1,591
</p>
<p>[0] => [20211109 10:29:02][160] [ SaleDlg::SetInsOrderDetail] Row[01] [신규등록 ] ProdCd[000073] Qty[ 1] Amt[ 3500] Dc[ 0] ProdNm[라면] SDS_ORG_DTL_NO[]</p>
<p>
위의 정보값을 [ ] 괄호 단위로 분리해서 저장하고 싶습니다.
어떤 방법을 이용하면 별도의 분리가 가능할까요?
예)
[0] => [20211109 10:29:02]
[1] => [160]
.... 등등
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
3년 전
</p>
<p>$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]);</p>
<p>/*</p>
<p>Array
(
[0] => [20211109 10:29:02]
[1] => [160]
[2] => [ SaleDlg::SetInsOrderDetail]
[3] => [01]
[4] => [신규등록 ]
[5] => [000073]
[6] => [ 1]
[7] => [ 3500]
[8] => [ 0]
[9] => [라면]
[10] => []
)</p>
<p>*/</p>
<p>
고정된 길이면 다른 방법으로도 구할 수 있습니다.
뭐 구하는 방법이야 다양한데 생략!
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
B
BiHon
3년 전
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
$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]