求将两个foreach 部分简化 的写法

function Sec2Time($time){
    if(is_numeric($time)){
    $value = array(
      "years" => 0, "days" => 0, "hours" => 0,
      "minutes" => 0, "seconds" => 0,
    );
    if($time >= 31556926){
      $value["years"] = floor($time/31556926);
      $time = ($time%31556926);
    }
    if($time >= 86400){
      $value["days"] = floor($time/86400);
      $time = ($time%86400);
    }
    if($time >= 3600){
      $value["hours"] = floor($time/3600);
      $time = ($time%3600);
    }
    if($time >= 60){
      $value["minutes"] = floor($time/60);
      $time = ($time%60);
    }
    $value["seconds"] = floor($time);
    $t = '';
    
    foreach ($value as $key => $val) {
        if($val == ''){
            unset($value[$key]);
        }
    }

    foreach ($value as $key => $value) {
        
        if($key == 'years'){
            $t .= $value.'年';
        }
        if($key == 'days'){
            $t .= $value.'天';
        }
        if($key == 'hours'){
            $t .= $value.'小时';
        }
        if($key == 'minutes'){
            $t .= $value.'分';
        }
        if($key == 'seconds'){
            $t .= $value.'秒';
        }
    }
    // var_dump($value);
    // echo $t;exit;
    // //return (array) $value;
    // $t=$value["years"] ."年". $value["days"] ."天"." ". $value["hours"] ."小时". $value["minutes"] ."分".$value["seconds"]."秒";
    return $t;
    
     }else{
    return (bool) FALSE;
    }
 }
阅读 3k
1 个回答
$values= array_filter($value);
$arr = ['years'=>'年','days'=>'天','hours'=>'小时','minutes'=>'分','seconds'=>'秒'];
foreach ($values as $key => $value) {
    $t.=$value.$arr[$key];
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题