2013-10-03 34 views
1

我有这样的代码:PHP的foreach(只显示其中10)

<?php 
$files = glob("notes/last.*.*/table.php"); 
rsort($files); 
foreach($files as $tables) {include $tables;} 
?> 

与输出:

tables 
tables 
tables 

这将包括从去年开始很多php的文件旧帖子。

我想只包括输出的第一个。 (也就是最后加10) 怎么办?

+0

http://stackoverflow.com/questions/444712​​7/php-any-function-that-return-first-last-n-数组元素 – Jack

回答

2

测试此:

$i= 0; 
foreach($files as $tables) { 
    $i++; 
    include $tables; 
    if($i == 10) break; 
} 
+0

Op需要最后10个元素,而不是第一个10. – hsz

+0

我认为它可以,嗯,它显示正确的方式,但是最上面的一个不正确,我正在测试它。 – user2773673

+0

@ user2773673这只会在您对数组进行降序排序时发生作用,以便最后添加的10个数组成为数组中的前10个数。为什么要在foreach循环之外声明一个计数器变量,当你可以使用for循环来获得相同的结果? – Andrew

3

尝试用:

$limitedArray = array_slice($files, count($files) - 10); 
0

你并不需要做一个反向排序,以便进入最后10是第10在数组中。你可以得到数组的数量,从10中减去它,并循环到数组的末尾。您将需要将您的foreach更改为for循环。

这应包括从$文件阵列的最后10:

for ($i = (count($files) - 10); $i < count($files); $i++) 
{ 
    include $files[$i]; 
} 
+0

我测试你的代码,它不工作,meaby我忘了添加一些东西,可以给完整的代码?来测试它。 – user2773673

+0

你可以包含完整的代码来初始化文件数组吗?你遇到了什么错误? – Andrew