如果存在重复值,则覆盖foreach输出

时间:2014-11-10 03:52:30

标签: php string

我在服务器上有一个文件夹,但是获取这些文件却遇到了一些困难。我的代码是

$dir = 'F:\\wamp\www\files';
if (is_dir($dir)) {
if(($file = scandir($dir))!==false) {    

    foreach ($file as $key => $value) {                  
        $name = substr($value,0,-7);   

scandir()函数返回返回名称列表的文件数组,即

manoj254.txt
manoj234.txt
pooza145.txt
pooza452.txt
ramesh418.txt
ramesh231.txt  

并且我已经使用substr()函数删除了扩展名,之后输出为$ name

manoj
manoj
pooza
pooza
ramesh
ramesh

但是我需要输出$ name,没有duplicate.i.e

manoj
pooza
ramesh

这意味着删除重复...可以任何身体帮助我PLZ !!

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

function getUniqueFileNames($path = null)
{
    if($path && $files = scandir($path)) { 
        $names = array_map(function($i) {
            if(is_file($i)) return str_replace(strrchr($i, '.'), '', $i);
        }, $files);
        return array_unique(array_filter($names));
    }
}

使用它像:

$filenames = getUniqueFileNames('F:\\wamp\www\files');

还有其他方法。