2015-10-01 7 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> 

[संपादित करें]

लाल द्वारा समाधान। आप सभी को धन्यवाद!

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++; 
    } 

या

उत्तर here में सुझाए गए अनुसार, आप का उपयोग कर सकते हैंसरणी Sepatley में पहली आइटम को संसाधित करने के लिए।

है, नीचे दिए गए

$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

लगभग! मुझे बस काम करने के लिए मूल्य (++ $ i == 1) की आवश्यकता है! मैंने प्रश्न में अंतिम कोड शामिल किया। सरल और साफ। बहुत बहुत धन्यवाद, दोस्त! – rdllngr

+0

ग्रेट .. :) खुशी है कि इससे मदद मिली ... – Lal

+2

@Lal आप अपने पहले उदाहरण में '$ i' में वृद्धि नहीं कर रहे हैं, इसलिए' $ i == 0' हमेशा सत्य होगा। – Drown

-1

आप इस वाक्यविन्यास का उपयोग foreach के लिए कर सकते हैं। इस वाक्यविन्यास का उपयोग करते हुए आपके पास $ k में पुनरावृत्ति की अनुक्रमणिका है, जबकि $ v में सरणी का मान आप पुनरावृत्त कर रहे हैं। तो अगर $ k == 0 आप पहले पुनरावृत्ति में हैं।

+0

वह केवल – RiggsFolly

+0

कर रहा है यह प्रश्न का उत्तर नहीं देता है। – rnevius

+0

इसका उत्तर क्यों नहीं देता? यदि वह इस वाक्यविन्यास का उपयोग करता है तो वह $ कुंजी चर पर एक चेक कर सकता है। यदि यह 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"; 
} 

(यकीन नहीं अगर यह कोई संपादन या एक जवाब होना चाहिए यह मूल रूप से है, क्योंकि टी वह एक ही विधि है लेकिन थोड़ा सा सरल सिंथैक्स के साथ, मैं अब के लिए उत्तर के रूप में पोस्ट करूंगा)

संबंधित मुद्दे