2013-10-03 61 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