Foreach循环仅处理一个元素

时间:2019-01-31 18:11:10

标签: php

我有一个名为plugin_loader()的函数。该功能所做的工作就是这样。它使用glob()在名为“ plugins”的文件夹中搜索。之后,应从创建的数组元素中删除不必要的“ ../../”。 因此,我做了foreach循环。但对于()的一些原因,当我做的print_r,看看我是否做了正确的方式只显示最后一个文件是这样的:“/assets/plugins/test_plugin1.php”。但是我有两个文件“ helloworld.php”和“ test-plugin1.php”。为什么不从两个文件而不是一个文件中删除“ ../../”? P.S我做了检查,如果检测到这两个文件,而且它们。

我尝试过count()来查看数组中有多少个元素,然后在foreach中调用while循环。但这只是给了我两个相同的输出。

function Plugin_Loader()
  {
    $scanned_files = glob("../../assets/plugins/*.php");
      foreach ($scanned_files as $file) {
       $file_loc = str_replace('../', ' ', $file);
  print_r($file_loc);
     }
  }

1 个答案:

答案 0 :(得分:0)

您应该初始化$file_loc

function Plugin_Loader()
  {
    $scanned_files = glob("../../assets/plugins/*.php");
      foreach ($scanned_files as $file) {
       $file_loc[] = str_replace('../', ' ', $file);
      print_r($file_loc);
     }
  }