2013-03-07 7 views
-1

배열에 디렉터리가 있고 내 목표는 foreach (또는 이와 동등한) 문에서 폴더 이름과 폴더 경로를 가져 오는 것입니다.foreach의 이전 배열 값 결합

여기까지 제가 지금까지 있습니다.

<? 
$array = array("folder","path","here"); 
foreach ($array as $value){ 
    echo "File Name: $value"; 
    echo "File Path:  "; 
} 

여기서 알 수있는 것처럼 경로를 얻는 방법을 모르겠습니다. 내가하려고하는 것은 이런 것입니다.

File Name: folder 
File Path: /folder 

File Name: path 
File Path: /folder/path 

File Name: here 
File Path: /folder/path/here 

누구든지 의견이 있으십니까? 감사합니다.

foreach ($array as $current_index => $value){ 
    echo "File Name: $value"; 
    echo "File Path: /" . implode('/', array_slice($array, 0, $current_index + 1)); 
} 

will output :

정확한 출력을 위해
+1

'에코 내파 ('/', $ 배열)'당신에게 최종 전체를 줄 것이다 통로. – nickb

+0

두 번째 폴더의 경로 (예 :)는 어떻게됩니까? 함몰은 세 번째 폴더도 포함합니다. – dsol828

답변

0

루프 내에서 경로를 구축 참조 :

<? 
$array = array("folder","path","here"); 
$path = ""; 
foreach ($array as $value){ 
    $path .= "/$value"; 
    echo "File Name: $value"; 
    echo "File Path: $path"; 
} 
+0

예, 이것은 가장 단순한/가장 논리적 인 해결책처럼 보입니다. – dsol828

5

, 당신은 array_slice() 사용할 수 있습니다, 그렇지 않으면

File Name: folder 
File Path: /folder 

File Name: path 
File Path: /folder/path 

File Name: here 
File Path: /folder/path/here 

를 단지 전체 경로를 들어, 당신은 사용할 수 있습니다 implode() :

echo implode('/', $array); 
+0

배열 슬라이스에서 +1과 반대가되어서는 안됩니까? – dsol828

+0

@ dsol828 - 그렇게해서는 안됩니다. ('array_slice()'의 세 번째 매개 변수는 취할 요소의 수입니다. 데모 참조) – nickb

+0

이 이상합니다. 방금 코드를 시도했지만 모든 경로가 "/ folder/path/here"로 반환되었지만 -1로 변경하면 트릭을 수행하는 것 같습니다. – dsol828