"mp4"로 끝나는 파일 이름 만 가진 배열을 채우려 고합니다. 서브 디렉토리 목록을 통해 재귀 함수를 살펴 봅니다.반환 된 배열의 마지막 요소를 인쇄하는 PHP 만
foreach 루프를 사용하여 배열의 요소를 인쇄 할 때 return 문 앞에 모든 요소가 올바르게 표시됩니다. 그러나 메서드 반환에서 변수를 만들고 다시 반복하려고하면 배열의 마지막 항목 만받습니다.
루프의 재귀가 원인 일 수 있습니까? 다음과 같이
내 코드는 다음과 같습니다
<?php
function listFolderFiles($dir){
$array = array();
$ffs = scandir($dir);
foreach($ffs as $ff){
if($ff != '.' && $ff != '..'){
// This successfully adds to the array.
if(substr($ff, -3) == "mp4"){
$array[] = $ff;
}
// This steps to the next subdirectory.
if(is_dir($dir.'/'.$ff)){
listFolderFiles($dir.'/'.$ff);
}
}
}
// At this point if I insert a foreach loop,
// all of the elements will display properly
return $array;
}
// The new '$array' variable now only includes the
// last entry in the array in the function
$array = listFolderFiles("./ads/");
foreach($array as $item){
echo $item."<p>";
}
?>
어떤 도움을 주시면 감사하겠습니다! 나는 슬픈 것에 대해 사과한다. PHP를 처음 사용합니다. 사전에
감사합니다!
재귀 호출을 수행하면 반환 값과 관련된 작업을 수행하지 않습니다. – Barmar
모든 .mp4 파일은 최상위 디렉토리가 아닌 하위 디렉토리에 있습니다. – Barmar
그것은 나를 위해 잘 작동합니다. –