2015-10-01 40 views
5

簡單,但我找不到答案。如何在PHP中更改第一個回顯結果的類?

我想列出子類別以在下面的代碼中創建選項卡。這個在我的輸出中工作正常。但第一個標籤頁需要<li class= "selected" >才能在頁面加載時顯示內容。

如何強制第一個回聲結果包含<li>元素上的一個類?

[輸出]

Actual:.......... Category 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> 

[編輯]

由拉爾的解決方案。謝謝大家!

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

我需要該類來激活一個腳本。我正在使用這個代碼系統。 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所示,您可以使用使用array_shift()處理數組separatley中的第一個項目。

也就是說,做如下

$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>'; 
} 

閱讀在docs

+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)更多關於array_shift(),但這裏做一個簡單的方法它沒有一個額外的變數爲計數器:

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

(不知道這應該是一個編輯或答案,因爲它基本上是t他同樣的方法,但用一個稍微簡單的合成器,我現在將作爲答案發布)

相關問題