如何使用列表向foreach的第一个结果添加一个类?

时间:2013-11-22 08:22:39

标签: php

我想在foreach中的第一个查询结果中添加,然后回显其余信息。

我使用以下代码检索并仅显示第一个结果

foreach ($highlightedArticles as $data)
{   
    $article_title      = $data['article_title'];
    $article_image      = $data['article_image'];

    echo '
    <section class="headlines">
        <h2 class="heading orange">
            <a href="#">news</a>
        </h2>

        <ul>
            <li class="first">
                <a href="">
                    <figure>
                        <img src="url/'.$article_image.'"/>
                        <figcaption>'.$article_title.'</figcaption>
                    </figure>
                </a>
            </li>
        </ul>
    </section>
    ';
}

我现在无法解决的问题是如何添加剩余的结果(4个结果总共使用“first”类),因为所有内容都在echo中,我需要添加{{1 }}

这是我想表达的......

< li > 

4 个答案:

答案 0 :(得分:0)

是你在寻找什么?

$out= '
    <section class="headlines">
        <h2 class="heading orange">
            <a href="#">news</a>
        </h2>

        <ul>';
foreach ($highlightedArticles as $data)

{   

    $article_title      = $data['article_title'];
    $article_image      = $data['article_image'];

$out.= '    
            <li class="first">
                <a href="">
                    <figure>
                        <img src="url/'.$article_image.'"/>
                        <figcaption>'.$article_title.'</figcaption>
                    </figure>
                </a>
            </li>';
}
$out.='  </ul>
    </section>';
echo $out;

答案 1 :(得分:0)

请按以下方式修改您尝试过的代码:

$firstLoop = true;
foreach( $network_value as $key => $value ){

   if( $firstLoop ){
       //do things on only the first loop
       $firstLoop = false;
       continue;
   }

   //do other things

}

修改

$out= '
<section class="headlines">
    <h2 class="heading orange">
        <a href="#">news</a>
    </h2>

    <ul>';
$firstloop=true;
foreach ($highlightedArticles as $data)

{   

   $article_title      = $data['article_title'];
   $article_image      = $data['article_image'];
   if($firstloop){
     $out.= '    
     <li class="first">
         <a href="">
              <figure>
                    <img src="url/'.$article_image.'"/>
                    <figcaption>'.$article_title.'</figcaption>
                </figure>
            </a>
        </li>';
    $firstloop = false;
    continue; 
 }

 $out.= '    
      <li>
            <a href="">
                <figure>
                    <img src="url/'.$article_image.'"/>
                    <figcaption>'.$article_title.'</figcaption>
                </figure>
            </a>
      </li>';
}
$out.='</ul>
</section>';
echo $out;

答案 2 :(得分:0)

我会这样做:

  1. 获取$ highlight像这样$ highlightArticles [0]的第一项,并回显图像和标题。
  2. 然后调用array_slice($ highlightedArticles,1);除了第一个元素之外,它将返回$ highlightedArticles,然后迭代并回显返回的项目。

答案 3 :(得分:0)

<section class="headlines">
    <h2 class="heading orange">
        <a href="#">news</a>
    </h2>

    <ul>
    <?php foreach ($highlightedArticles as $key => $data)
    {   
        $article_title      = $data['article_title'];
        $article_image      = $data['article_image'];

        reset($highlightedArticles);

        printf('<li %s>
                    <a href="">
                        <figure>
                            <img src="url/%s"/>
                            <figcaption>%s</figcaption>
                        </figure>
                    </a>
                </li>
            ',
            $key === key($highlightedArticles) ? 'class="first"' : '',
            $article_image,
            $article_title
        );
    } ?>
    </ul>
</section>