将数据属性与数组中的数据一起使用


Using Data attributes With Data from an array

我在门户页面中使用数据属性来描述喜欢的链接。这很容易做到——你使用的是一个常规列表(因为你可以单独将自定义的"数据特殊"放在中

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

  • 时,如何挑选并应用数组中单个链接的特殊数据?我的看法是要么全在前臂,要么全无。

    数据特殊性是我自己的声明。我通过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>
    
  • 在不了解更多信息的情况下,尝试这样的操作(在需要的地方填空)。我假设您使用的是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"' : '';