我在一个网站上工作,该网站在已知评级时显示星级。以下是包含所有必要信息的 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 库显示满星还是空星。
我是一名优秀的程序员,十分优秀!