Umwandeln eines Strings mit einer Array-Struktur in ein Array
Problem:
Sie haben einen String, der ein verschachteltes Array darstellt Struktur, und Sie müssen sie in ein tatsächliches Array konvertieren. Zum Beispiel mit der folgenden Zeichenfolge:
Main.Sub.SubOfSub
Nach dem Login kopieren
Und einem Datenwert:
SuperData
Nach dem Login kopieren
Sie möchten ein Array wie folgt erstellen:
Array
(
[Main] => Array
(
[Sub] => Array
(
[SubOfSub] => SuperData
)
)
)
Nach dem Login kopieren
Lösung:
Um den String in ein Array umzuwandeln, können Sie die folgenden Schritte verwenden:
-
Teilen Sie den String in ein Array von Schlüsseln auf: Verwenden Sie die Funktion explosion(), um die Zeichenfolge durch den Punkt (.) als Trennzeichen zu teilen. Dadurch erhalten Sie ein Array der Schlüssel in der verschachtelten Array-Struktur.
-
Erstellen Sie einen Verweis auf die Wurzel des Arrays: Verwenden Sie die Variable &$target, um einen Verweis auf zu erstellen Wurzel des Arrays. Dadurch können Sie die Array-Struktur ändern, während Sie durch die Schlüssel iterieren.
-
Durch die Schlüssel iterieren: Iterieren Sie durch die Schlüssel im Schlüsselarray. Überprüfen Sie für jeden Schlüssel, ob er auf der aktuellen Ebene des Arrays vorhanden ist. Wenn dies nicht der Fall ist, erstellen Sie ein neues Array für diesen Schlüssel.
-
Aktualisieren Sie die Referenz: Nachdem Sie das Array für den aktuellen Schlüssel erstellt haben, aktualisieren Sie die Referenz so, dass sie auf den neuen zeigt Array. Dadurch können Sie die verschachtelte Struktur weiter nach unten iterieren.
-
Wert zuweisen: Nachdem Sie den Blattknoten der verschachtelten Struktur erreicht haben, weisen Sie den Datenwert dem letzten Schlüssel zu.
Hier ist ein Codeausschnitt, der die Schritte demonstriert:
<code class="php">$key = "Main.Sub.SubOfSub";
$target = array();
$value = "SuperData";
$path = explode('.', $key);
$root = &$target;
while(count($path) > 1) {
$branch = array_shift($path);
if (!isset($root[$branch])) {
$root[$branch] = array();
}
$root = &$root[$branch];
}
$root[$path[0]] = $value;</code>
Nach dem Login kopieren
Dieser Codeausschnitt erstellt die gewünschte Array-Struktur, wobei der Datenwert im endgültigen Schlüssel gespeichert wird.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen String, der eine verschachtelte Array-Struktur darstellt, in ein Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!