PHP. Как из массива строк перевести минуты в часы?

Есть массив $str, которой содержит в себе следующие данные:

[0] => 1 час 25 минут

[1] =>  20 минут

Каким образом, из полученных данных, я могу перевести минуты в часы?


Ответы (1 шт):

Автор решения: teran

Примерно так:

$data = ["1 час 25 минут","20 минут"];

$result = array_map(function($v){
                 if(preg_match("/((?<hour>\d+)\s*час)?.*?(?<min>\d+)\s*мин/iu", $v, $matches)){
                     
                     // часы
                     return intval($matches['hour'] ?? 0)  + $matches['min']/60;
                     // минуты
                     return intval($matches['hour'] ?? 0) * 60 + $matches['min'];
                 }
                 return 0;
              }, $data);
→ Ссылка