2017-04-14 76 views
0

我想追加文件名到PHP中的數組。我有代碼從服務器上的「歌曲」目錄中讀取文件名。我只是希望每個這些文件名被添加到數組中。我怎麼能這樣做?PHP附加文件名到數組

這是我的PHP。

$target = "songs/"; 
$items = array(); 
if ($handle = opendir($target)) { 
    while (false !== ($entry = readdir($handle))) { 
     if ($entry != "." && $entry != "..") { 
      foreach($song as $entry) { 
       $items[] = $entry; 
      } 

      //echo $items; 
      echo $entry."\n"; 
     } 
    } 
    closedir($handle); 
} 
+0

什麼不符合您的代碼?在這段時間之後,$ items是什麼樣的? –

+0

'foreach($ song作爲$條目)'什麼是'$ song'? –

+0

當我回顯$ items時,它返回「ArrayArrayArrayArray ......」陷入循環。 @SloanThrasher – gsanchez

回答

1

您使用的是同一個變量在foreach環路您使用的是從readdir()持有的文件名。所以當你做$items[] = $entry;時,你需要將迭代變量添加到數組中,而不是文件名。似乎沒有任何理由將該文件名添加到循環內的數組中,並且應避免重複使用這樣的變量,這隻會導致混淆。

$items = array(); 
if ($handle = opendir($target)) { 
    while ($entry = readdir($handle)) { 
     if ($entry != "." && $entry != "..") { 
      $items[] = $entry; 
      foreach($song as $s) { 
       // do something with $s 
      } 

      //echo $items; 
      echo $entry."\n"; 
     } 
    } 
    closedir($handle); 
} 
+0

看來我仍然有麻煩。我希望每個$條目都被追加到數組中。 @Barmar – gsanchez

+0

這會將每個'$ entry'追加到數組中,除了'.'和'..'外。 – Barmar