使用文本将数字转换为字符串php

时间:2017-12-05 18:04:56

标签: php

有没有办法在特定点将数字转换为包含文字的字符串?

示例:

700将为7 minutes 00 seconds

60将为60 seconds

140将为1 minute 40 seconds

所以第三个数字会添加minutes,而数字的开头总是seconds

我已经尝试了number_format($score, 2, "minutes ")和其他变体,但它似乎无法正常工作,因为7000将是70分00秒等等。

2 个答案:

答案 0 :(得分:1)

是的,请使用substr

function minuteAndSeconds($string) {
    switch (strlen($string)) {
      case 1:
        return '0' . $string . ' seconds';

     case 2:
       return $string . ' seconds';

     case 3:
       return substr($string, 0, 1) . ' minutes ' . substr($string, 1) . ' seconds';

     default:
       return 'Invalid string format';
  }
}

该函数接受一个字符串并返回以您询问的方式格式化的字符串。

您必须将数字转换为字符串。 (例如$variable = (string) $variable

答案 1 :(得分:0)

我认为正则表达式是最好的选择,因为它可以是两个或三个(?)数字分钟 这将匹配两个最后的数字作为秒,以及之前的任何数字作为分钟。

$n = 700;

Preg_match("/(\d*)(\d{2})/", $n, $match);

Echo ($match[1] ?: 0) . " minutes and ". $match[2] . " seconds";

https://3v4l.org/NvaGp


或者您可以使用list()使每个数组项成为变量。

$n = 700;

Preg_match("/(\d*)(\d{2})/", $n, $match);
List($n, $minutes, $seconds) = $match;

Echo ($minutes ?: 0) . " minutes and ". $seconds . " seconds";

https://3v4l.org/grWaV