Php 使用smarty比较多维数组值
我有多维数组Php 使用smarty比较多维数组值,php,smarty,Php,Smarty,我有多维数组 Array (4) 0 => Array (6) 0 => 0 1 => "100100105" 2 => "honey" 3 => "SUP" 4 => 0 5 => 0 1 => Array (6) 0 => 1 1 => "100100608" 2 => "bunny" 3 => "MEM" 4 => 0 5 => 0 2 => Arra
Array (4)
0 => Array (6)
0 => 0
1 => "100100105"
2 => "honey"
3 => "SUP"
4 => 0
5 => 0
1 => Array (6)
0 => 1
1 => "100100608"
2 => "bunny"
3 => "MEM"
4 => 0
5 => 0
2 => Array (6)
0 => 1
1 => "100100609"
2 => "munny"
3 => "DISTSTD"
4 => 0
5 => 0
3 => Array (6)
0 => 2
1 => "100300054"
2 => "sunny"
3 => "MEM"
4 => 0
5 => 0
要使用smarty将当前级别的零值与下一级别的零值(如数组[0][0]==数组[1][0])进行比较
我只能得到当前元素的值。如何获取当前循环中的下一个元素值
{{foreach from=$volume item=element}}
{{if $element@iteration > 1}}
{{$element[0]}}
{{/if}}
{{/foreach}}
要在Smarty中访问阵列,需要将要访问的索引分配给变量,以便能够索引到阵列中
{foreach from=$volume item=element name=foo}
{assign var=nextIteration value=$smarty.foreach.foo.iteration + 1}
{$volume[$nextIteration]}
{/foreach}
我猜要进行比较,您应该:
{foreach from=$volume item=element name=foo}
{assign var=nextIteration value=$smarty.foreach.foo.iteration + 1}
{if ($nextIteration + 1) >= count($volume) }
Last element
{elseif $volume[$nextIteration][0] == $element[0]}
They matched!
{else}
They are different!
{/if}
{/foreach}
然而,这是一种非常糟糕的使用Smarty的方式,因为它以一种非常丑陋的方式破坏了模式。如果你只是写一篇文章来处理这样复杂的情况,你会更好。是的,它可能仍然打破了MVC模式,但它至少是可维护的,而不是在模板中包含复杂的代码。非常感谢。这很有帮助