1

在 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
)

像这样。我将如何从这个文件列表数组中删除这个目录。

4

3 回答 3

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);
于 2015-02-02T22:20:01.260 回答
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]);
    }
}
于 2015-02-02T15:28:37.917 回答
0

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

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

于 2015-02-02T15:06:43.157 回答