【问题标题】:Limit in foreach?限制foreach?
【发布时间】:2016-06-10 11:44:06
【问题描述】:

我没有找到解决问题的方法。使用以下代码,我扫描文件夹中的文件。我只看到 601 个条目。 foreach、select 或 scandir 有没有限制?

<?php
$ordner = "../picture/";
$alledateien = scandir($ordner);
sort($alledateien);
foreach ($alledateien as $datei) {
$dateiinfo = pathinfo($ordner."/".$datei);
$size = ceil(filesize($ordner."/".$datei)/1024); 
if ($datei != "." && $datei != ".."  && $datei != "_notes") { 
?>
<option value="<?php echo $dateiinfo['filename'] . "." . $dateiinfo['extension']; ?>"><?php echo $dateiinfo['filename']; ?> (<?php echo $dateiinfo['extension']; ?> | <?php echo $size ; ?>kb)</option>
<?php
}};
?> 

【问题讨论】:

  • foreach 将遍历所有受您传递的内容大小限制的内容。查看控制结构for 可以在其中设置限制
  • 我会使用glob
  • 嗨亚伦。感谢您的快速答复。我不会限制.. 我会看到所有条目。但我只看到 599。

标签: php select foreach limit scandir


【解决方案1】:

开始
for($k=2;$k<count($alledateien);$k++){
$dateiinfo = pathinfo($ordner."/".$alledateien[$k]);
// .. Your Code
}

限制是条件满足的时候。取决于你如何在循环中设置它。

如果您提供print_r($alledateien),您将看到两个额外的文件...,它们是current directoryparent directory。忽略从 2 开始的循环。

【讨论】:

  • 好的,我知道你的意思。但是您如何通过我的代码实现这一点?
  • 几个小时前我做了同样的事情哈哈 :) 删除那个排序的东西。你的计数是 601 吗?如果没有,那么我将编辑我的代码以删除 .和 .. 在数组中
  • 哈哈很好:) 我删除了排序的东西,但没有任何改变。是的,你说得对 - 它在 601 个条目后停止。
  • 当然,但我的问题没有解决:S 你删除排序的想法不是解决方案。
  • 您说得对 - 条目只是未排序。非常感谢。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-20
  • 2010-12-12
  • 2016-07-21
  • 2012-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多