如何将递归函数的答案放入数组(PHP)中?
Posted
技术标签:
【中文标题】如何将递归函数的答案放入数组(PHP)中?【英文标题】:How to put the answer from recursive function in an array (PHP)? 【发布时间】:2021-12-25 04:58:01 【问题描述】:那里,
我尝试了很多次将递归函数的答案放入一个数组 ($result) 中,但我做不到。代码如下:
function readDirs($path , $result = [])
$dirHandle = opendir($path);
while($item = readdir($dirHandle))
$newPath = $path."/".$item;
if(is_dir($newPath) && $item != '.' && $item != '..')
readDirs($newPath, $result);
elseif(!is_dir($newPath) && $item != '.DS_Store' && $item != '.' && $item != '..')
echo "$path<br>";
$result[] = $path;
return $result;
$path = "/Users/mycomputer/Documents/www/Photos_projets";
$results = array();
readDirs($path, $results);
你能帮我把路径放在数组中吗,因为我稍后在我的代码中需要它们? 谢谢
【问题讨论】:
最明显的是你没有使用readDirs()
来分配变量。一个好的第一步是$result = readDirs($path);
。
尝试通过将readDirs($path , $result = [])
更改为readDirs($path , &$result)
将$results
数组作为引用传递。那你就不需要退货了。外部$results
将在函数调用后填充。
【参考方案1】:
我无法理解您的问题,但可以肯定这可能会有所帮助
function readDirs($path)
$result = [];
$dirHandle = opendir($path);
while($item = readdir($dirHandle))
$newPath = $path."/".$item;
if(is_dir($newPath) && $item != '.' && $item != '..')
$result[] = readDirs($newPath);
elseif(!is_dir($newPath) && $item != '.DS_Store' && $item != '.' && $item != '..')
echo "$path<br>";
$result[] = $path;
return $result; //im not sure this return statement you implement is needed try it to remove it if this does not work
return $result;
$path = "/Users/mycomputer/Documents/www/Photos_projets";
$result = readDirs($path);
var_dump($result);
试一试并回复。
【讨论】:
嗨,我想说谢谢你的回答,它对我帮助很大。再见。 很高兴,但如果您的问题得到解答,请关闭问题。以上是关于如何将递归函数的答案放入数组(PHP)中?的主要内容,如果未能解决你的问题,请参考以下文章