Исключить имя файла при использовании glob и array_slice - PullRequest
0 голосов
/ 11 июня 2018

Это должно быть просто: я использую glob для создания списка ссылок на все файлы в каталоге (то есть index.php, somefile.php, someotherfile.php), но мне нужно исключить имя файла/ path index.php до array_slice.

По некоторым причинам в этих двух примерах я могу исключить index.php после array_alice, но не до.Что я делаю не так?

Это не удаляет имя файла / путь 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 />';
}
}

1 Ответ

0 голосов
/ 12 июня 2018

Вы ставите свой чек после цикла.

<php
foreach (glob("*.php") as $path) {
//---------------------------^
    $files[$path] = filemtime($path);
}
arsort($files);

if($path != 'index.php') {}
//---^

Поместите его в свой цикл так:

foreach (glob("*.php") as $path) {
    if($path == 'index.php') {
        continue;
    }
    $files[$path] = filemtime($path);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...