计算进度条内的百分比

Count percentage inside a progress bar

在数学相关问题上需要一点帮助。

我的代码如下,它显示所有用户的所有小时费率(例如:35、30、45、68 等)

$args = array(
    'role' => 'freelance_author',   
);

// The Query
$user_query = new WP_User_Query( $args );

if ( ! empty( $user_query->results ) ) {
    foreach ( $user_query->results as $user ) {                 
        $all_hourly_rate    = get_the_author_meta( 'hourly_rate', $user->ID );                  
        echo '<p>' . $all_hourly_rate . '</p>';                 
    }               
} 

现在我想要一个额外的变量,它获取最高的数字(例如 68)。

然后下一步是在进度条中实现它

<div class="uk-progress">
    <div class="uk-progress-bar" style="width:<?php echo esc_attr( $author_hourly_rate ); ?>%;"></div>
</div>

假设某个作者的时薪是 $34,这是最高时薪 (68) 的 50%(进度条上为 100%),那么 $author_hourly_rate 应该是 50% 对于那个特定的作者。

非常感谢任何帮助。

您可以通过将其存储在临时变量中来获取最大值:

$temp = 0;
foreach ( $user_query->results as $user ) {
    $all_hourly_rate    = get_the_author_meta( 'hourly_rate', $user->ID );
    echo '<p>' . $all_hourly_rate . '</p>';
    $temp = $all_hourly_rate > $temp ? $all_hourly_rate : $temp;
}

然后计算百分比:

<div class="uk-progress-bar" style="width:<?php echo esc_attr( ($author_hourly_rate * 100) / $temp ); ?>%;"></div>

您可以遍历 result 中的每个 user 并检查它们的 hourly_rate 是否大于 max_hourly_rate

$args = array(
    'role' => 'freelance_author',   
);

// The Query
$user_query = new WP_User_Query( $args );

if ( ! empty( $user_query->results ) ) {

    // set default $max_hourly_rate as the first result UID
    $max_hourly_rate = get_the_author_meta( 'hourly_rate', $user_query->results[0]->ID);

    for ( $i=1; $i<count($user_query->results); $i++ ) {              
        $user = $user_query->results[$i];

        $hourly_rate    = get_the_author_meta( 'hourly_rate', $user->ID );                  
        echo '<p>' . $hourly_rate . '</p>';                 

        //set max_hourly_rate if the users hourly_rate is greater
        if ($hourly_rate > $max_hourly_rate){
            $max_hourly_rate = $hourly_rate;
        }
    }               
} 

?>

找到 max_hourly_rate 后,您可以将 div 宽度百分比计算为 ($hourly_rate/$max_hourly_rate) * 100

<div class="uk-progress">
    <div class="uk-progress-bar" style="width:<?php echo esc_attr($hourly_rate/$max_hourly_rate) * 100; ?>%;"></div>
</div>

编辑:更新了对 echo 宽度

的回答