从php数组中删除目录名称

时间:2015-02-02 15:01:52

标签: php arrays codeigniter getfiles filelist

在CodeIgnitor中,我使用directory_map获取此数组。

Array
(
    [0] => preview.zip
    [1] => RealEsta - Email Marketing Template.zip
    [2] => thumbnail
    [3] => thumbnail.jpg
)

我想从数组中删除目录名。

Array
(
    [0] => preview.zip
    [1] => RealEsta - Email Marketing Template.zip
    [2] => thumbnail.jpg
)
像这样。我将如何从此文件列表数组中删除此目录。

3 个答案:

答案 0 :(得分:0)

根据CodeIgniter支持页面,目录名称不会被列为数组值,而是作为数组索引。

https://ellislab.com/codeigniter/user-guide/helpers/directory_helper.html

答案 1 :(得分:0)

您可以使用 is_dir()

示例:

<?php

// Your array
$files_and_dirs = array(
            'preview.zip',
            'RealEsta - Email Marketing Template.zip',
            'thumbnail',
            'thumbnail.jpg'
        );


// Now loop the above array
foreach($files_and_dirs as $key => $value)
{
    if(is_dir("abc/xyz/".$value))
    {
        unset($files_and_dirs[$key]);
    }
}

答案 2 :(得分:0)

你可以通过多种方式解决它(目前我可以想到3种方式)  方式1:

$map = directory_map('./uploads/'.$user_id.'/files', 2, FALSE);//set second parameter as 2
foreach($map as $key=>$m)
{
    if(is_array($m))
    {
        unset($map[$key]);
    }
}
print_r($map);//now $map only contains files name

方式2:

$map = directory_map('./uploads/'.$user_id.'/files', 2, FALSE);//set second parameter as 2
foreach($map as $key=>$m)
{
    if(!is_int($key))
    {
        unset($map[$key]);
    }
}
print_r($map);

方式3:

$map = directory_map('./uploads/'.$user_id.'/files', 1, FALSE);//As you did
foreach($map as $key=>$m)
{
    if(is_dir('./uploads/'.$user_id.'/files'.$m))
    {
        unset($map[$key]);
    }
}
print_r($map);