PHP Erstellt eine Breadcrumb-Liste aller Werte in einem verschachtelten Array

Ich habe ein Array, das wie folgt aussieht:

[
    'applicant' => [
        'user' => [
            'username' => true,
            'password' => true,
            'data' => [
                'value' => true,
                'anotherValue' => true
            ]
        ]
    ]
]

ch möchte in der Lage sein, dieses Array in ein Array zu konvertieren, das wie folgt aussieht:

[
    'applicant.user.username',
    'applicant.user.password',
    'applicant.user.data.value',
    'applicant.user.data.anotherValue'
]

rundsätzlich muss ich eine Schleife durch das verschachtelte Array ausführen und jedes Mal, wenn ein Blattknoten erreicht wird, den gesamten Pfad zu diesem Knoten als durch Punkte getrennte Zeichenfolge speicher

Nur Schlüssel mittrue als Wert sind Blattknoten, jeder andere Knoten ist immer ein Array. Wie würde ich vorgehen, um dies zu erreichen?

bearbeite

Das ist, was ich bis jetzt versucht habe, aber nicht die beabsichtigten Ergebnisse gibt:

    $tree = $this->getTree(); // Returns the above nested array
    $crumbs = [];

    $recurse = function ($tree, &$currentTree = []) use (&$recurse, &$crumbs)
    {
        foreach ($tree as $branch => $value)
        {
            if (is_array($value))
            {
                $currentTree[] = $branch;
                $recurse($value, $currentTree);
            }
            else
            {
                $crumbs[] = implode('.', $currentTree);
            }
        }
    };

    $recurse($tree);

Antworten auf die Frage(2)

Ihre Antwort auf die Frage