计算进度条内的百分比
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
宽度
的回答
在数学相关问题上需要一点帮助。
我的代码如下,它显示所有用户的所有小时费率(例如: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
宽度