2016-08-05 36 views
0

Während ich weiß, wie eine Zählung in einer foreach zu schaffen,Zählen ohne foreach

$i = -1; 
foreach ($menu_items as $item => $value) : 
    ... 
$i--;  
endforeach; 

Ich möchte die gleiche Zählung Effekt aber meine eigenen Code erstellen nicht innerhalb einer foreach. Ein Beispiel meines Codes ist wie folgt:

<ul> 
<li>...</li> 
<li class="menu-item[<?php echo esc_attr($count); ?>]">...</li> 
<li class="menu-item[<?php echo esc_attr($count); ?>]"> 
    <ul> 
     <li class="menu-item[<?php echo esc_attr($count); ?>]"></li> 
     <li class="menu-item[<?php echo esc_attr($count); ?>]"></li> 
    </ul> 
</li> 
<li class="menu-item[<?php echo esc_attr($count); ?>]">...</li> 
</ul> 

Ergebnis sollte so sein.

<ul> 
<li>...</li> 
<li class="menu-item[-1]">...</li> 
<li class="menu-item[-2]">...</li> 
<li class="menu-item[-3]"> 
    <ul> 
     <li class="menu-item[-4]"></li> 
     <li class="menu-item[-5]"></li> 
    </ul> 
</li> 
<li class="menu-item[-6]">...</li> 
</ul> 

Jede Hilfe wird sehr geschätzt.

+0

Warum nicht eine Funktion haben, die den aktuellen '$ count' Wert zurückgibt, und erhöht das? –

Antwort

0

versuchen ..

<ul> 
<li>...</li> 
<li class="menu-item[<?php $count = -1; echo esc_attr($count); ?>]">...</li> 
<li class="menu-item[<?php echo esc_attr(--$count); ?>]"> 
    <ul> 
     <li class="menu-item[<?php echo esc_attr(--$count); ?>]"></li> 
     <li class="menu-item[<?php echo esc_attr(--$count); ?>]"></li> 
    </ul> 
</li> 
<li class="menu-item[<?php echo esc_attr(--$count); ?>]">...</li> 
</ul> 
+1

Danke! Sowohl Ihre als auch RiggsFolly Antwort waren sehr hilfreich. Ihre Antwort lautet "$ count = -1;", was Ihre Antwort vervollständigt. – kiarashi

2

Sie müssen nur die Zähler zu verringern, wie Sie zusammen mit dem von --

Start gehen Einstellung count auf Null oder was auch immer Sie die Zähler wollen auf beginnen, da Sie kurz vor Ihrer foreach Schleife haben.

<ul> 
<li>...</li> 
<li class="menu-item[<?php echo esc_attr($count--); ?>]">...</li> 
<li class="menu-item[<?php echo esc_attr($count--); ?>]"> 
    <ul> 
     <li class="menu-item[<?php echo esc_attr($count--); ?>]"></li> 
     <li class="menu-item[<?php echo esc_attr($count--); ?>]"></li> 
    </ul> 
</li> 
<li class="menu-item[<?php echo esc_attr($count--); ?>]">...</li> 
</ul> 

Dies wird das $count Feld dekrementiert den aktuellen Wert nach der Anzeige.

Wenn Sie sind

<li class="menu-item[<?php echo esc_attr(--$count); ?>]">...</li> 

es würde verringert die Zähler zuerst verwenden und dann seinen Wert anzuzeigen. diese