$item, 'path' => $relativePath, 'folder' => dirname($relativePath) === '.' ? '' : dirname($relativePath), 'size' => filesize($fullPath), 'mtime' => filemtime($fullPath), 'preview' => mb_substr(strip_tags($content), 0, 200) ]; } } return $docs; } $documents = scanDirectory($docDir, $docDir, $search); // 按文件夹分组,然后按修改时间排序 usort($documents, function($a, $b) { // 先按文件夹排序 if ($a['folder'] !== $b['folder']) { return strcmp($a['folder'], $b['folder']); } // 同一文件夹按修改时间排序(新文件在前) return $b['mtime'] - $a['mtime']; }); ?>