2015-02-02 3 views
1

CodeIgnitor에서이 배열은 directory_map을 사용 중입니다.PHP 디렉토리에서 디렉토리 이름을 제거하십시오

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 
) 

이와 유사한. 이 파일 목록 배열에서이 디렉토리를 어떻게 제거 할 것입니까?

+2

그리고 당신이 그 인덱스 2를 알고 싶어 할 디렉토리가 얼마나 ? – Rizier123

+0

PHP를 사용하여 디렉토리를 나열하는 많은 방법은 디렉토리를 제외하거나 파일로만 제한하는 고유 한 방법이 있기 때문에 먼저 배열을 어떻게 작성했는지 확인할 수 있습니다. –

+3

docs에 따르면, 하위 디렉토리 자체가 배열이므로'is_array()'로 필터링 할 수 있습니다. https://ellislab.com/codeigniter/user-guide/helpers/directory_helper.html하지만 숫자로 색인 된 요소는 _not_ 디렉토리가 아니므로 '축소판'은 실제로 확장자가없는 _file_ 일 수 있습니다. –

답변

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]); 
    } 
} 
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); 
관련 문제