-1

お気に入りのリンクを説明するためにポータル ページでデータ属性を使用しています。これは、通常のリストを使用している場合に非常に簡単に実行できます (カスタムの「data-special」を個別に入れることができるためです。

ただし、配列に多くのリンクがあり、 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; ?>
    

    特定のリンクに data-special を追加する必要がありますが、それらが配列にあるため、それらを選択する方法がわかりません

    編集これは、配列内のおそらく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 に答える