Php GlobIterator列出不包含

Php GlobIterator列出不包含,php,glob,Php,Glob,我正在尝试列出不包含文件koala.jpg的所有文件夹,我尝试了以下方法: $iterator = new GlobIterator('/storage/websites/site/images/menu_slider/*/koala.*', GlobIterator::CURRENT_AS_PATHNAME); if (!$iterator->count()) { echo 'No matches'; } else { $n = 0; printf("Mat

我正在尝试列出不包含文件koala.jpg的所有文件夹,我尝试了以下方法:

$iterator = new GlobIterator('/storage/websites/site/images/menu_slider/*/koala.*',  GlobIterator::CURRENT_AS_PATHNAME);

if (!$iterator->count()) {
    echo 'No matches';
} else {
    $n = 0;

    printf("Matched %d item(s)\r\n".'<br />', $iterator->count());

    foreach ($iterator as $item) {
        printf("[%d] %s\r\n".'<br />', ++$n, $iterator->key()).'<br />';
    }
}
非常感谢您的帮助。

使用
dirname($iterator->key())


另外,请注意
basename(dirname($iterator->key())
如果需要,只获取最后一个文件夹名

对不起,我没有那么高级。我只是用dirname($iterator->key())替换$iterator->key()?因为这只会删除文件名..然后将其括在basename()中-这将只返回最后一个文件夹名,而不是完整的文件夹名,是否只列出不包含搜索到的文件名的文件夹名?您需要单独的数组,在迭代过程中,将所有文件夹存储在第一个数组中,并将包含文件的文件夹存储在第二个数组中,然后您将能够通过数组_diff函数找到差异
Matched 14 item(s)
[1] /storage/websites/site/images/menu_slider/235x141/koala.jpg
[2] /storage/websites/site/images/menu_slider/235x200/koala.jpg
[3] /storage/websites/site/images/menu_slider/240x100/koala.jpg
[4] /storage/websites/site/images/menu_slider/240x200/koala.jpg
[5] /storage/websites/site/images/menu_slider/250x200/koala.jpg
[6] /storage/websites/site/images/menu_slider/250x300/koala.jpg
[7] /storage/websites/site/images/menu_slider/250x400/koala.jpg
[8] /storage/websites/site/images/menu_slider/365x200/koala.jpg
[9] /storage/websites/site/images/menu_slider/470x200/koala.jpg
[10] /storage/websites/site/images/menu_slider/470x60/koala.jpg
[11] /storage/websites/site/images/menu_slider/480x100/koala.jpg
[12] /storage/websites/site/images/menu_slider/595x200/koala.jpg
[13] /storage/websites/site/images/menu_slider/960x100/koala.jpg
[14] /storage/websites/site/images/menu_slider/960x200/koala.jpg