最简单的方法是将格式为"PT2M19S"
或"PT19S"
(YouTube api视频时长)的字符串分开,以得到这样的数组?
Array
(
[M] => 2
[S] => 19
)
答案 0 :(得分:4)
为什么不呢?
$str = 'PT2M19S';
$i = new DateInterval($str);
print_r($i);
您可以使用结果对象的'i'和's'属性
DateInterval Object
(
[y] => 0
[m] => 0
[d] => 0
[h] => 0
[i] => 2
[s] => 19
[weekday] => 0
[weekday_behavior] => 0
[first_last_day_of] => 0
[invert] => 0
[days] =>
[special_type] => 0
[special_amount] => 0
[have_weekday_relative] => 0
[have_special_relative] => 0
)
答案 1 :(得分:3)
请改用此正则表达式:
preg_match_all('/(\d+)([MS])/', $string, $matches, PREG_PATTERN_ORDER);
然后使用第二个捕获组作为键并使用第一个捕获组作为值来创建关联数组。
$result = array_combine($matches[2], $matches[1]);