计算进度条内的百分比

时间:2016-10-31 18:20:00

标签: php wordpress math count percentage

需要一些与数学相关的问题的帮助。

我的代码如下,其中显示所有用户的所有小时费率(例如: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美元,这是最高小时费率的50%(68)(进度条上100%),那么$author_hourly_rate应为{该特定作者的{1}}%。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

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

$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>

答案 1 :(得分:1)

您可以遍历user中的每个result并检查他们的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宽度

的答案