2014-02-18 53 views
0
foreach(array_slice(glob('/res/images/*.jpg'), 0, 999) as $filename) 

是做工精细,但PHP:的foreach上限999个结果

foreach(array_slice(glob('/res/images/*.jpg'), 0, 1000) as $filename) 

不工作。我可以在哪里更改此限制?

+2

请展开“不起作用”。怎么了?你有错误吗? – IMSoP

+0

不显示结果。想想,没有任何反应。 999响应时间2秒,1000未响应 – TKVideoChat

+0

也许[内存溢出](http://stackoverflow.com/a/12772851/1607098)?如何切换到[DirectoryIterator](http://php.net/directoryiterator)? – Touki

回答

3

简单的尝试(可能是更好的)方式像

$i = 0; 
foreach(glob('/res/images/*.jpg') as $filename) { 
    if($i++ <= 1000) { 
     // Do the display 
    } else { 
     break; 
    } 
} 
+0

对于大量的可能文件,我建议''break'在'else'块中。 –

+0

Thanks @PavelŠtěrba我已经添加了它。实际上我忘了它 – Gautam3164

+0

或者稍微简化一下,把'if($ i ++> 1000){break; }'在函数的顶部,保存额外的缩进。不过,我怀疑这不会解决OP的问题。 – IMSoP

0
$i = 0; 
$max = 1000; 
foreach(array_slice(glob('/res/images/*.jpg'), 0, $max) as $filename) { 
    // Some code here 
    if($i++ >= $max) break; 
} 
0

试试这个

最短的方式做,像这样。

$i = 0; 
foreach(array_slice(glob('/res/images/*.jpg'), 0, 1000) as $filename) { 
    // Some code here 
    if($i++ >= 1000) break; 
} 

我希望这会对您有所帮助。