我有一个数组,我正从SCANDIR回来,但它包含了"."和".."我不希望它.
我的代码:
$indir = scandir('../pages');
$fileextensions = array(".", "php", "html", "htm", "shtml");
$replaceextensions = str_replace($fileextensions, "", $indir);
Run Code Online (Sandbox Code Playgroud)
我正在对文件扩展名进行字符串替换,从而导致[0]和[1]显示为空,但它们是"."和".."
array(4) {
[0]=>
string(0) ""
[1]=>
string(0) ""
[2]=>
string(4) "test"
[3]=>
string(4) "home"
}
Run Code Online (Sandbox Code Playgroud)
我将如何删除"."并".."从阵列?
lef*_*ben 33
您可以使用array_filter.
$indir = array_filter(scandir('../pages'), function($item) {
return !is_dir('../pages/' . $item);
});
Run Code Online (Sandbox Code Playgroud)
请注意,这会过滤掉所有目录,只留下文件和符号链接.如果你真的只想排除开头的文件(和目录).,那么你可以这样做:
$indir = array_filter(scandir('../pages'), function($item) {
return $item[0] !== '.';
});
Run Code Online (Sandbox Code Playgroud)
min*_*sky 18
在scandir中删除点作为文件的最快方法
$files = array_slice(scandir('/path/to/directory/'), 2);
Run Code Online (Sandbox Code Playgroud)
array_diff 会做你想要的:
$indir = scandir('../pages');
$fileextensions = array(".", "php", "html", "htm", "shtml");
$indir = array_diff($indir, array('.', '..'));
$replaceextensions = str_replace($fileextensions, "", $indir);
Run Code Online (Sandbox Code Playgroud)
http://php.net/manual/en/function.array-diff.php