使用数据属性使用数组中的数据

时间:2012-03-29 00:28:25

标签: php css custom-data-attribute

我在门户网站页面中使用数据属性来描述最喜欢的链接。使用常规列表非常容易实现(因为您可以单独将自定义的“数据特殊”放入其中。

但是,如果您在阵列中有大量链接并且正在使用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; ?>
    

    我需要为特定链接添加特殊数据,但不确定如何将它们添加到数组中

    EDIT 这就是我试图在数组

    中的一些链接中实现的5个
    <li data-special><a href="http://kuler.adobe.com/#create/fromacolor" rel="external">Kular</a></li>
    
  • 1 个答案:

    答案 0 :(得分: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 = $key == 'Twitter'
        ? 'data-special="true"' : '';
    

    或许更好的例子可能是......

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

    然后,在你的循环中

    $special = in_array($key, $specials)
        ? 'data-special="true"' : '';