//by www.qzphp.cn //查看目录内的文件和目录,并按生成时间排序 function index(){ //要查看的目录 $file_path = '../extend/'; //判断 Mac 是否有 DS_Store,拉取文件是否有.gitkeep、.keep,并排除 $files = []; $file = scandir($file_path, 1); if(!empty($file)){ foreach($file as $k=>$v){ if($v!='.' && $v!='..' && $v!='.DS_Store' && $v!='.gitkeep' && $v!='.keep'){ $files[] = $v; } } } $list = []; if(is_array($files)){ foreach($files as $k=>$v){ $filesize = filesize($file_path . $v); if($filesize < 1024){ $size = sprintf("%01.2f", $filesize) . "B"; }elseif($filesize < 1024 * 1024){ $size = sprintf("%01.2f", ($filesize / 1024)) . "KB"; }elseif($filesize < 1024 * 1024 * 1024){ $size = sprintf("%01.2f", ($filesize / (1024 * 1024))) . "MB"; }elseif($filesize < 1024 * 1024 * 1024 * 1024){ $size = sprintf("%01.2f", ($filesize / (1024 * 1024 * 1024))) . "GB"; } $list[] = [ 'file'=>$v, 'size'=>$size, 'create_time'=>filemtime($file_path . $v), 'create_date'=>date('Y-m-d H:i:s', filemtime($file_path . $v)), ]; } } //根据文件和目录生成时间按倒序排列 $list = $this->arraySort($list, 'create_time', SORT_DESC); echo '<pre>'; print_r($list);die; echo '</pre>'; } /** * 二维数组根据某个字段排序 * @param array $array 要排序的数组 * @param string $keys 要排序的键字段 * @param string $sort 排序类型: SORT_ASC 升序, SORT_DESC 降序 * @return array 排序后的数组 */ function arraySort($array, $keys, $sort = SORT_DESC) { $keysValue = []; foreach ($array as $k => $v) { $keysValue[$k] = $v[$keys]; } array_multisort($keysValue, $sort, $array); return $array; }