function star_bar( $data = array( ) ) {
$output = "<b>Rating:</b> ";
if ( $data["rating"] == 1 ) {
$output .=
"<span class=\"star-icon half\">☆</span>
<span class=\"star-icon\">☆</span>
<span class=\"star-icon\">☆</span>
<span class=\"star-icon\">☆</span>
<span class=\"star-icon\">☆</span><br />";
}
if ( $data["rating"] == 2 ) {
$output .=
"<span class=\"star-icon full\">☆</span>
<span class=\"star-icon\">☆</span>
<span class=\"star-icon\">☆</span>
<span class=\"star-icon\">☆</span>
<span class=\"star-icon\">☆</span><br />";
}
if ( $data["rating"] == 3 ) {
$output .=
"<span class=\"star-icon full\">☆</span>
<span class=\"star-icon half\">☆</span>
<span class=\"star-icon\">☆</span>
<span class=\"star-icon\">☆</span>
<span class=\"star-icon\">☆</span><br />";
}
if ( $data["rating"] == 4 ) {
$output .=
"<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span>
<span class=\"star-icon\">☆</span>
<span class=\"star-icon\">☆</span>
<span class=\"star-icon\">☆</span><br />";
}
if ( $data["rating"] == 5 ) {
$output .=
"<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span>
<span class=\"star-icon half\">☆</span>
<span class=\"star-icon\">☆</span>
<span class=\"star-icon\">☆</span><br />";
}
if ( $data["rating"] == 6 ) {
$output .=
"<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span>
<span class=\"star-icon\">☆</span>
<span class=\"star-icon\">☆</span><br />";
}
if ( $data["rating"] == 7 ) {
$output .=
"<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span>
<span class=\"star-icon half\">☆</span>
<span class=\"star-icon\">☆</span><br />";
}
if ( $data["rating"] == 8 ) {
$output .=
"<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span>
<span class=\"star-icon\">☆</span><br />";
}
if ( $data["rating"] == 9 ) {
$output .=
"<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span>
<span class=\"star-icon half\">☆</span><br />";
}
if ( $data["rating"] == 10 ) {
$output .=
"<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span>
<span class=\"star-icon full\">☆</span><br />";
}
return $output;
}
正如您所看到的,这非常不整洁,是否可能存在某种循环?这将使用从 mysql 数据库中提取的整数输出星形条。
这是一个非常简单的css星形栏源码https://coderwall.com/p/iml9ka
最佳答案
代码
function star_bar($data = array())
{
$output = "<b>Rating:</b> ";
for ($i = 1; $i <= $data["rating"] / 2; $i++) {
$output .= "<span class=\"star-icon full\">☆</span>";
}
if ($data["rating"] % 2 == 1) {
$output .= "<span class=\"star-icon half\">☆</span>";
}
for ($i = 1; $i <= (10 - $data["rating"]) / 2; $i++) {
$output .= "<span class=\"star-icon\">☆</span>";
}
$output .= "<br />";
return $output;
}
说明
满星的数量每两次评级就会增加:0 和 1 的满星数为零,2 和 3 的满星数为 1,依此类推。因此,您将评分除以二,即可得到满星数。
您最多有一颗半星,而且只有奇数评级。因此,仅当您的评分除以 2 余数为 1(评分不是偶数)时才添加它。
空星星的数量与满星星的数量类似,除了它基于 (10 - $data["rating"])
(它随着评级的增加而减少)。
关于php - 是否可以在我的函数中循环遍历 html 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21974049/