2015-10-01 2 views
5

簡単な回答ですが、回答が見つかりません。PHPで最初のエコー結果のクラスを変更するには?

私は、下のコードでタブを作成するサブカテゴリをリストしたいと考えています。これは私の出力でうまく動作します。しかし、ページの読み込み時にコンテンツを表示するには、最初のタブに<li class= "selected" >が必要です。

最初のエコー結果に<li>要素のクラスを含めるにはどうすればいいですか?

[出力]

実際:..........カテゴリー1 |カテゴリ2 |カテゴリ3

必要性:..........カテゴリ1 * |カテゴリ2 |カテゴリー3

*クラス=

<ul class="cd-tabs-navigation"> 

    <?php 
    $argumentos = array(
    'hide_empty' => 1, 
    'child_of' => 44, 
); 
    $categories = get_categories($argumentos); 
    foreach($categories as $category) { 
    echo '<li><a data-content="' . $category->slug . '" href="#' . $category->slug . '">' . $category->name . '</a></li>'; 
    } 
    ?> 

    </ul> 

を "選択"。

[編集]

Lal。みんなありがとう!

foreach($categories as $category) { 
    if(++$i==1) 
    echo '<li class="selected"><a class="selected" data-content="' . $category->slug . '" href="#' . $category->slug . '">' . $category->name . '</a></li>'; 
    else 
    echo '<li><a data-content="' . $category->slug . '" href="#' . $category->slug . '">' . $category->name . '</a></li>'; 
    } 
+0

なぜクラスを追加しますか?それはスタイルを適用するためのものですか? – Lal

+0

アクティブな1つのスクリプトにクラスが必要です。私はこのコードシステムを使用しています。 http://codyhouse.co/gem/responsive-tabbed-navigation/ – rdllngr

答えて

3
私は、これはそれを行うための正しい方法がある場合はわからない。..カウンタを使用することをお勧め

..

は変更して、あなたのforeach次のように

$i=0; 
foreach($categories as $category) { 
    if($i==0) 
    echo '<li class="selected"><a data-content="' . $category->slug . '" href="#' . $category->slug . '">' . $category->name . '</a></li>'; 
    else 
    echo '<li><a data-content="' . $category->slug . '" href="#' . $category->slug . '">' . $category->name . '</a></li>'; 
    $i++; 
    } 

OR

回答hereで提案されているように、を使用することができます配列分離部の最初の項目を処理するには、を使用します。

読む

$first = array_shift($categories); 
echo '<li class="selected"><a data-content="' . $first ->slug . '" href="#' . $first ->slug . '">' . $first ->name . '</a></li>'; 
foreach($categories as $category) { 
    echo '<li><a data-content="' . $category->slug . '" href="#' . $category->slug . '">' . $category->name . '</a></li>'; 
} 

以下のようにそれを行うよりおよそ array_shift() docs

+0

ほぼ!私はちょうど値0(++ $ i == 1)の代わりに0が必要です!私は問題の最終コードを含めました。 シンプルで清潔です。ありがとう、君! – rdllngr

+0

グレート.. :)助けてくれてうれしい... – Lal

+2

@Lal最初の例では '$ i'をインクリメントしていないので、' $ i == 0'は常に真です。 – Drown

-1

この構文はforeachに使用できます。この構文を使用すると、$ kに反復のインデックスがあり、$ vには反復している配列の値があります。 $ k == 0の場合、最初の反復になります。

+0

彼はちょうどそれをしています – RiggsFolly

+0

これは質問に答えません。 – rnevius

+0

なぜそれは答えられないのですか?彼がこの構文を使用する場合、$ key変数をチェックすることができます。 0の場合、最初の反復処理に入っているので、htmlにクラスを追加できます。 – gmast

1

ラルのソリューションは、(限り、あなたは$iをインクリメントとして)正常に動作しますが、ここで行うための簡単な方法だ、ですそれはカウンターのための余分な変数なし:

foreach($categories as $index => $category){ 
    if(!$index) echo "This is the first element"; 
    else echo "This is not the first element"; 
} 

(ではない、これは編集または回答する必要がありますかどうかわからそれは基本的にトンだから彼は同じ方法だが、少しシンプルなシンタックスで、私は今答えとして投稿する)

関連する問題