2016-08-05 63 views
0

虽然我知道如何创建一个foreach内计数,不计数的foreach

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

我想创建相同的计数的效果,但我自己的代码是不是一个foreach内。我的代码示例如下:

<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> 

结果应该是这样的。

<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> 

任何帮助,非常感谢。

+0

为什么不返回当前'$ count'值的功能,并增加了吗? –

回答

0

试试这个..

<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

谢谢!你和RiggsFolly的答案都非常有帮助。由于'$ count = -1;'选择了你的答案,这使得你的答案更加完整。 – kiarashi

2

你只需要递减计数器作为你与--

开始走通过设置count为零或任何你想要的柜台在开始,就像你刚才您foreach循环之前有。

<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> 

这会在显示其当前值后递减$count字段。

如果你使用

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

那就先递减计数,然后显示其价值。