2016-06-21 3 views
0

이 문자열에서 날짜 "2016년 6월 13일" "ffg_LTE_2016-06-13"배열에 정규식을하고 다른 배열에 저장이

$re = '/(\d{8})|([0-9]{4}-[0-9]{2}-[0-9]{2})|([0-9]{2}-[0-9]{2}-[0-9]{4})/'; 
$str = "ffg_LTE_2016-06-13"; 
preg_match($re, $str, $matches); 
$date=$matches[0]; 
print_r($date); 

지금 내가 원하는를 추출 내 코드입니다 할 일은 for 루프에서 이와 같이해야하지만 배열에 결과를 저장하는 데 문제가 있습니다. 내가하고 싶은 것은 위와 동일하지만 배열의 각 요소에 대해 수행합니다.

$files=["ffg_LTE_2016-06-13","ffg_LTE_2016-06-14"]; 

foreach ($files as $value) { 
    print_r("<br>".$value."<br>"); 
} 

그래서 내 최종 결과는 것

$ files_2 = [ "2016년 6월 13일", "2016년 6월 14일"];

여기 내 fiddle

+1

밑줄로 폭발하지 않는 이유는 무엇입니까? –

답변

1

당신이 시도 할 수 있습니다 : $files 통해

<?php 

    $files=["ffg_LTE_2016-06-13","ffg_LTE_2016-06-14"]; 
    $re = '/(\d{8})|([0-9]{4}-[0-9]{2}-[0-9]{2})|([0-9]{2}-[0-9]{2}-[0-9]{4})/'; 

    $results = []; 
    foreach ($files as $value) { 
     preg_match($re, $value, $matches); 
     $results[] = $matches[0]; 
    } 
    print_r($results); 

?> 

그냥 루프는 배열 $results에 첫 경기를 밀어하고 $results을 출력합니다.

+0

tks,이 결과를 설명하기 만하면됩니다. $ results [] = $ matches [0];'$ results = $ matches [0] 'array_push ($ results [], $ matches [0]);'나는 기본적으로'results '에서'[]'을 찾지 못했습니다. ' – HattrickNZ

+1

@HattrickNZ'$ results [] = $ matches [0];'는 매뉴얼 페이지 http://php.net/manual/의 상태로'array_push ($ results, $ matches [0]); '와 동일합니다. ko/function.array-push.php –

+0

여기 tks는 [피들] (http://phpfiddle.org/main/code/fba7-9m6w)입니다. – HattrickNZ