这是我的代码,从字符串“ffg_LTE_2016-06-13”中提取日期“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循环中做这样的事情,但是我遇到了将结果存储在数组中的问题。我想要做的与上面相同,但在数组中的每个elememt上做。
$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
答案 0 :(得分: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
。