php - 评分已知时如何在 css 中显示星级?

标签 php html css

我在一个网站上工作,该网站在已知评级时显示星级。以下是包含所有必要信息的 JSON 对象:

"item_ratings": [{
    "rating_id": 26,
    "item_id": 333,
    "booking_id": 60,
    "owner_id": null,
    "renter_id": 38,
    "rating": 5,
    "rating_type": "item",
    "created_at": "2018-07-04 10:28:55",
    "updated_at": "2018-07-04 10:28:55",
}, {
    "rating_id": 15,
    "item_id": 333,
    "booking_id": null,
    "owner_id": null,
    "renter_id": 38,
    "rating": 4,
    "rating_type": "item",
    "created_at": "2018-01-17 10:16:58",
    "updated_at": "2018-01-17 10:16:58",
}]

我在 php 中使用的代码是:

for ($i = 0; $i < count($data['item']->item_details->item_ratings); $i++) 
{
echo '<p class="renter_review_ratings">'.strtolower($data['item']->item_details->item_ratings[$i]->rating).'</p>';
}


问题陈述:

我想知道我需要在上面的 php 代码中做哪些更改,以便当它是 4 时,它应该显示 4 星,当它是 3 时它应该显示 3 星,反之亦然。

最佳答案

鉴于您使用 FontAwesome 5并且您的评分为 5 星,以下代码应该有效。

for ($j = 0; $j < count($data['item']->item_details->item_ratings); $j++) {
  $rating = $data['item']->item_details->item_ratings[$j]->rating;
  for($i = 1;$i <= 5;$i++) {
    if ($rating >= $i) {
      echo "<i class='fas fa-star'></i>";
    } else {
      echo "<i class='far fa-star'></i>";
    }
  }
}

这里发生的事情是,我们有第一个获取所有评级的 for 循环。然后它有另一个嵌套的 for 循环,正好循环 5 次。每次查找时,它都会使用 if 语句来确定是使用 FontAwesome 库显示满星还是空星。

关于php - 评分已知时如何在 css 中显示星级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52031689/

相关文章:

asp.net - 我的 ASP :menu control is hidden when it contains no items - how can I show it?

php - 在 PHP 中整理 HTML5 输出缩进

php - 在 PHP 中使用 preg_match 通过多个分隔符拆分字符串

javascript - “节点”未定义。我们如何在应用程序级别定义?

PHP提交时不会将sql数据发送到数据库?

html - CSS 在行和列中显示 div

php - 为什么我不能更改根目录?

php - 使用 php 处理 mysql 错误的正确方法是什么?

javascript - Firefox onclick html5 视频事件

HTML:选择 - 选项内有 2 种不同的文本颜色