Php 从递归函数返回一个值
我有一个函数,我可以通过echo获得所有正确的值,但是当我无法确定如何返回整个数组时。有人能帮我找到所有的儿童用户吗Php 从递归函数返回一个值,php,recursion,Php,Recursion,我有一个函数,我可以通过echo获得所有正确的值,但是当我无法确定如何返回整个数组时。有人能帮我找到所有的儿童用户吗 $useridarray[] = $userid; getchildren($useridarray, $useridarray); function getchildren($array, $totalarray) { foreach($array as $arr) { $db_name
$useridarray[] = $userid;
getchildren($useridarray, $useridarray);
function getchildren($array, $totalarray)
{
foreach($array as $arr)
{
$db_name = "dbname";
$connection = @mysql_connect("localhost", "username", "password") or die(mysql_error());
$db = @mysql_select_db($db_name, $connection) or die(mysql_error());
$sql = "
select *
from users
where creator = '$arr'
";
$result = @mysql_query($sql, $connection) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
$newchildren[] = $row['id'];
$totalarray[] = $row['id'];
//echo $row['id'] . ' ';
}
mysql_close();
getchildren($newchildren, $totalarray);
}
}
您需要:
用法:
$useridarray[] = $userid;
getchildren($useridarray, $useridarray);
var_dump($useridarray); # your result
您需要:
用法:
$useridarray[] = $userid;
getchildren($useridarray, $useridarray);
var_dump($useridarray); # your result
您需要在之前添加退货
mysql_close();
return getchildren($newchildren, $totalarray);
您需要在之前添加退货
mysql_close();
return getchildren($newchildren, $totalarray);
我不熟悉PHP语法,但您可能希望实现一个“停止条件”来返回结果。因此,在您的实例中,您似乎希望getChildren返回localResults+递归getChildren结果,这些结果在您执行foreach循环时以增量方式累加。我不熟悉PHP语法,但您可能希望实现“停止条件”来返回结果。因此,在您的实例中,您似乎希望getChildren返回localResults+递归getChildren结果,这些结果在您通过foreach循环时以增量方式累加。仅从实用性和性能方面考虑,我将创建一个函数来创建连接并选择数据库,将这些细节传递给函数。将减少创建和关闭连接的开销。请注意实用性和性能,我将创建一个函数来创建连接并选择数据库,并将这些详细信息传递给您的函数。将减少创建和关闭连接的开销。