我正在编写一个脚本,并希望使用一个名为$ states的数组两次。 $states
是一个包含50个状态列表的数组。
我正在使用下面的代码段来显示结果。如果我只使用带有class="table-responsive"
的div,它可以正常工作和显示。如果我只使用带有class="container"
的div本身,它也会正确显示结果。
但是,当我尝试同时使用两者时,即一个跟随另一个,第一个工作,第二个不显示或最多显示数组中的最后一个结果。我试过重置数组,但似乎没有任何工作。
我做错了什么?任何帮助,将不胜感激。感谢。
<div class="table-responsive" id="defaultview">
<table class="table" width="100%" border="0" cellspacing="0" cellpadding="0">
<? array_shift($states);
$rows3 = array_chunk($states, 2);
foreach ($rows3 as $states) { ?>
<tr>
<? foreach($states as $state){ ?>
<td><a href="/search.php?state=<?=$state['state']?>" title="<?=$state['state']?>">
<?=$state['state']?>
</a></td>
<? } ?>
</tr>
<? }?>
</table>
</div><!-- /End #state -->
<div class="container" id="smallview" style="padding-left: 1px;">
<ul class="list-group">
<?
reset($states);
array_shift($states);
foreach($states as $state)
{ ?>
<li class="list-group-item"><a href="/search.php?state=<?=$state['state']?>" title="<?=$state['state']?>">
<?=$state['state']?>
</a></li>
<? } ?>
</ul>
</div><!-- /End #state -->
答案 0 :(得分:1)
问题在于:
array_shift($states);
$rows3 = array_chunk($states, 2);
foreach ($rows3 as $states) {
// ^^^^^^^
此时,您将覆盖原始的$states
数组;如果原始数组有一个奇数个元素,比如49,那么在循环结束时你现在只有一个元素的$states
数组。
进一步在代码中:
reset($states);
array_shift($states);
在array_shift()
之后,数组现在将为空。