1

エコーですべての正しい値を取得できる関数がありますが、配列全体を取得する方法がわからない場合に返されます。すべての子ユーザーを取得する方法を誰かが教えてくれませんか?

    $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);
        }
    }
4

3 に答える 3

1

参照で渡す必要がありますDocs

function getchildren($array, &$totalarray)
                             ^

使用法:

$useridarray[] = $userid;
getchildren($useridarray, $useridarray);
var_dump($useridarray); # your result
于 2012-05-03T15:57:27.417 に答える
0

私は PHP 構文に精通していませんが、結果を返すために「停止基準」を実装したいと思うでしょう。したがって、あなたのインスタンスでは、getChildren が localResults + 再帰的な getChildren の結果を返し、foreach ループを通過するにつれて増分的に合計される何かが必要なように思えます。

于 2012-05-03T16:04:21.897 に答える
0

前にリターンを追加する必要があります

    mysql_close();
return getchildren($newchildren, $totalarray);
于 2012-05-03T15:57:31.023 に答える