0

我需要显示一个包含产品详细信息的页面。例如

 <ul>
 <li>Product: <?php echo $product['Product']['name'] ?></li>
 <li>Features: <?php echo $product['Product']['Features'] ?></li>

等(可能是 20-30 个字段)

问题是每个产品可能有也可能没有空白字段,我只需要向用户显示非空白字段。

如何正确过滤结果以仅生成和显示

<li>

包含信息?

我看到了 3 种方法。

  1. 很多很多的

    <?php if (!empty($product['Product']['name']) echo "<li>Product: ".$product['Product']['name']."</li>"?>
    
  2. 添加某种JS过滤(我不懂JS所以可能无法实现)
  3. 使用“li”字段描述向数据库添加另一列

    (<li>Product:)
    

    然后以某种方式仅使用 While 循环输出非空字段...

4

2 回答 2

1

试试这个:

    echo '<ul>';
    foreach($product['Product'] as $key => $value) {
        if ($product['Product'][$key] != '') {
            if ($key == 'Info') {
                echo '<li>Some text that describes information for a user: ' . $value . '</li>';
            }
            else {
                echo '<li>' . $key . ': ' . $value . '</li>';
            }
        }
    }
    echo '</ul>';
于 2012-09-22T14:49:11.107 回答
0

我会考虑将选项 1 包装在辅助函数中:

function printProductListItem($value)
{
    if (!empty($value) 
        echo "<li>Product: " . $value . "</li>";
}

并这样称呼它:

printProductListItem($product['Product']['name']);
于 2012-09-22T14:49:41.480 回答