2013-06-26 100 views
0

我有一个数组,我循环使用foreach语句只是我只想显示前5个结果。这是最初的foreach语句:在数组中显示的结果数量限制

<?php  
foreach ($scorersCount as $player => $goals) { 

$playerinfo = get_userdata($player); 
$playerteam = get_user_meta($player, 'team-meta'); 
$teamname = get_post($playerteam[0]); 
$playername = $playerinfo->user_login; 

?> 
<tr> 
     <td class="playername"><?php echo $playername ?></td> 

     <td class="teamname"><?php echo $teamname->post_title ?></td> 

     <td><?php echo $goals ?></td> 
    </tr> 

<?php } > //end foreach 

我相信我需要包括一个while语句或do同时用$i <= 5在foreach内stement但是当我试图这样做,我刚刚拿到了第一个结果的5倍,而比前5个结果。有人可以告诉我如何正确地做到这一点?

回答

1

您可以在您需要的条件breakforeach圈状

<?php $index=0; 
foreach ($scorersCount as $player => $goals) { 

$playerinfo = get_userdata($player); 
$playerteam = get_user_meta($player, 'team-meta'); 
$teamname = get_post($playerteam[0]); 
$playername = $playerinfo->user_login; 

?> 
<tr> 
     <td class="playername"><?php echo $playername ?></td> 

     <td class="teamname"><?php echo $teamname->post_title ?></td> 

     <td><?php echo $goals ?></td> 
    </tr> 

<?php $index++; 
if($index=== 5) { 
     break;  
    } 
} ?> 
+0

谢谢您的回答。我和前一个一起去了,因为我所要做的就是改变我的时间,直到if。有没有什么特别的原因可以使用“休息”,或者只是个人喜好。 – mantis

+0

在我的情况下循环将只运行5次,但在@vulkoingim答案的情况下,你循环将打印5次,但运行每个数组值可以说,如果数组有100个值,然后循环运行100次,但在我的情况下循环将运行5次你可以看到性能差异 –

+0

我明白了。这就说得通了。 – mantis

0

你也可以使用array_chunk

$scorersCount = array_chunk($scorersCount,5,true); 
foreach ($scorersCount[0] as $player => $goals) {