php - 是否可以在我的函数中循环遍历 html 输出

标签 php html function

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/

相关文章:

html - 如何调整 <a> 元素内的文本悬停颜色?

sql - 函数从具有特定列的 sql 返回 sys_refcursor 调用

c - 将多维数组作为指针传递给函数

php - 将变量传递给回调 PHP

php - 像简码一样解析 Wordpress

PHP:将记录从 MYSQL 插入到 JQuery 数组中

php - linkedin媒体上传api出错

html - 在减小浏览器大小时,使背景填充 100% 浏览器的任何编码

jquery - 使用 jquery 将动画添加到 bootstrap Tooltip

javascript - 将函数绑定(bind)到对象中的另一个函数