【发布时间】:2018-11-20 20:45:13
【问题描述】:
这必须很简单:我正在使用 glob 构建指向目录中所有文件的链接列表(即 index.php、somefile.php、someotherfile.php),但我需要排除文件名/path index.php 在array_slice 之前。
出于某种原因,在这两个示例中,我可以在array_alice 之后排除index.php,但不能在之前。我做错了什么?
这不会删除文件名/路径index.php:
chdir('/dir/tree/');
foreach (glob("*.php") as $path) {
$files[$path] = filemtime($path);
} arsort($files);
if($path != 'index.php') {
foreach (array_slice($files, 0, 3) as $path => $timestamp) {
print '<a href="'. $path .'">'. $path .'</a><br />';
}
}
这删除了index.php,但它在array_alice之后,所以我打印了两个链接而不是三个:
chdir('/dir/tree/');
foreach (glob("*.php") as $path) {
$files[$path] = filemtime($path);
} arsort($files);
foreach (array_slice($files, 0, 3) as $path => $timestamp) {
if($path != 'index.php') {
print '<a href="'. $path .'">'. $path .'</a><br />';
}
}
【问题讨论】:
-
你在循环后使用
$path,所以它总是取最后一项。把它放在第一个循环中。 -
你能添加一个例子作为答案吗?