我正在从数组中提取字符串,并使用substr()函数从这些字符串中提取特定字符。这些字符串字符表示为持续时间,基于承包商完成特定任务所花费的时间。格式如下:
$duration = array(
'00:44:32','02:06:15','03:14:36','00:45:16'
);
这是我用来转换提取的字符,以便将持续时间转换为十进制形式的功能:
$myarray = $duration;
function func($myarray) {
$hours = substr($myarray,-8,2);
$minutes = substr($myarray,-5,2);
$seconds = substr($myarray,-2);
$hms_converted = ($hours + ($minutes/60) + ($seconds/3600));
$decimal = round($hms_converted,4);
echo $decimal . ",";
}
array_walk($myarray,'func');
这时,array_walk函数正在完成它的工作,并为数组中的每个记录吐出结果。看起来像这样:
<b>0.7422,2.1042,3.2433,0.7544</b>
我曾尝试像这样爆炸array_walk。但这不起作用。
explode(",",array_walk($myarray,'func'));
returns 0.7422,0.7544
我也曾尝试将array_walk分配给这样的变量。但是无济于事,我无法转换回数组。
$var = array_walk($myarray,'func');
explode(",$var);
returns 0.7422,0.7544
这是完整的代码,一个块
$duration = array(
'00:44:32','00:45:16'
);
$myarray = $duration;
function func($myarray) {
$hours = substr($myarray,'func');
该想法是要替换:
$duration = array(
'00:44:32','00:45:16'
);
使用:
$duration = array(
'0.7422','2.1042','3.2433','0.7544'
);
谢谢您的帮助!