-1

我在我的门户页面中使用数据属性来描述最喜欢的链接。这很容易做到,因为您使用的是常规列表(因为您可以单独放入自定义的“特殊数据”。

但是,当您在数组中有很多链接并且您正在使用 foreach

  • 您如何挑选并将特殊数据应用于数组中的各个链接?? 我在foreach中看到它的方式要么全部要么没有。

    data-special 是我自己的声明。我通过 CSS 将 Unicode 字符应用于特殊链接。

    感谢您的阅读和您的时间。

     $portal = array(
    
        "Twitter" => "http://twitter.com",
        //another 20 array elements       
    );  
    ksort($portal);
    
    foreach ($portal as $key => $item): 
       echo("<li><a rel=\"external\" href=\"$item\">$key</a></li>");    
    ?>  
    <?php endforeach; ?>
    

    我需要向特定链接添加特殊数据,但不确定如何将它们挑选出来,因为它们在数组中

    编辑这就是我试图在数组中的一些链接中的 5 个上实现的目标

    <li data-special><a href="http://kuler.adobe.com/#create/fromacolor" rel="external">Kular</a></li>
    
  • 4

    1 回答 1

    1

    在不知道更多信息的情况下,尝试这样的事情(在需要的地方填空)。我假设您使用的是 UTF-8 内容类型

    <?php foreach ($portal as $key => $item) :
    $special = /* boolean statement; is $key or $item special */
        ? 'data-special="true"' : '';
    ?>
    <li <?php echo $special ?>>
        <a rel="external"
           href="<?php echo htmlspecialchars($item, ENT_QUOTES, 'UTF-8') ?>">
            <?php echo htmlspecialchars($key, ENT_QUOTES, 'UTF-8') ?>
        </a>
    </li>
    <?php endforeach ?>
    

    一个更具体的示例可能是,如果您只想将Twitter键设置为 special..

    $special = $key == 'Twitter'
        ? 'data-special="true"' : '';
    

    也许一个更好的例子可能是......

    // before the foreach loop
    $specials = array('Twitter', 'Google', 'Facebook');
    

    然后,在你的循环中

    $special = in_array($key, $specials)
        ? 'data-special="true"' : '';
    
    于 2012-03-29T03:40:40.403 回答