2016-06-21 49 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

爲什麼不jiust在下劃線上爆炸 – 2016-06-21 21:50:12

回答

1

你可以試試這個:

<?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); 

?> 

它只是遍歷$files,推動第一場比賽到數組$results,並打印出$results

+0

tks,你能簡單地解釋一下這個'$ results [] = $ matches [0];'因爲我認爲我會這樣做'$ results = $ matches [0] ''或array_push($ results,$ matches [0]);'但也許我應該這樣做'array_push($ results [],$ matches [0]);''我基本上在結果​​中缺少'[]' ' – HattrickNZ

+1

@HattrickNZ'$ results [] = $ matches [0];'相當於'array_push($ results,$ matches [0]);'作爲手冊頁的狀態http://php.net/manual/ en/function.array-push.php – 2016-06-21 22:18:42

+0

tks這裏是[fiddle](http://phpfiddle.org/main/code/fba7-9m6w) – HattrickNZ