我有一个数组,我从scandir回来,但它包含“.”和“..”,我不想要它.
我的代码:
$indir = scandir('../pages'); $fileextensions = array(".","PHP","html","htm","shtml"); $replaceextensions = str_replace($fileextensions,"",$indir);
我在文件扩展名上进行字符串替换,从而导致[0]和[1]显示为空,但它们是“”.和“..”
array(4) { [0]=> string(0) "" [1]=> string(0) "" [2]=> string(4) "test" [3]=> string(4) "home" }
我如何删除“.”和“..”从数组?
你可以使用
array_filter.
$indir = array_filter(scandir('../pages'),function($item) { return !is_dir('../pages/' . $item); });
注意,这将过滤掉所有目录,只留下文件和符号链接.如果你真的只想排除只有以.开头的文件(和目录),那么你可以这样做:
$indir = array_filter(scandir('../pages'),function($item) { return $item[0] !== '.'; });